bigN Δημοσ. 17 Μαρτίου 2009 Δημοσ. 17 Μαρτίου 2009 Έψαχνα όλο το πρωί στο ΝΕΤ για τις πιθανές επιλογές και κατέληξα ότι μόνο με ένα περιβάλλον δεν πρόκειται να κάνω τη δουλειά μου... Επομένως θα ακολουθήσω τη συμβουλή σου .... NET για GUI και όπου υπάρχει κάτι σε dll και C++ Μόλις κολήσω κάπου θα έχετε τα νέα μου λοιπον, στη θεση σου θα πηγαινα για .ΝΕΤ οπου υπηρχε ετοιμος κωδικας σε c++ θα καθομουν να τον μετατρεψω σε .NET Υπαρχει βεβαια και η δυναντοτητα να καλεσεις c++ κωδικα μεσα απο το .NET ας πουμε κανοντας τον dll.... Δε ξερω για τι μεγεθη μιλαμε βεβαια. Anyway, oταν αντιμετωπισεις προβλημα με τη μεταφορα του κωδικα απο τη μια γλωσσα στην αλλη, εδω ειμαστε για βοηθεια
Directx Δημοσ. 17 Μαρτίου 2009 Δημοσ. 17 Μαρτίου 2009 Πρέπει να σημειώσω ότι δεν είμαι φανατικός της Microsoft απλά έτυχε να ασχοληθώ με τη VS για κάτι μικρές εφαρμογές για PDA όπου η Borland ήταν ανύπαρκτη. Το να επιλέξω το κατάλληλο περιβάλλον είνια πολύ σημαντικό και τελικά το παντρεύεσαι.... από την άλλη όταν δεν υπάρχουν αρκετά παραδείγματα μπορεί να αποτελέσει μεγάλο πρόβλημα και χάσιμο χρόνου στην αντιμετώπιση μικρών προβλημάτων. Έχεις χρησιμποιήσει και άλλα framework για τη C++? Για PDA programming πειραματίζομαι και εγώ με .NET CF και C# οπότε το VS .NET είναι μονόδρομος όσον αφορά το managed code για τα PDA εκτός βέβαια και αν θες να ασχοληθείς με native programming και εκεί οπότε υπάρχει η ανάλογη εκδοχή του MFC Πριν στραφώ στον C++ Builder & VCL είχα χρησιμοποιήσει για κάμποσο καιρό το Borland OWL και για πολύ λίγο διάστημα το MFC και φυσικά καθαρό Windows API. Αυτή την εποχή κοιτώ (ανιχνεύω αν θες..) το QT (με το QT Creator) καθώς έχει ξεκινήσει το port του σε Symbian OS πράγμα που με ενδιαφέρει αρκετά –αλλά δεν έχω ουσιαστική εξοικείωση μαζί του και οπωσδήποτε δεν είναι τόσο φιλικό όσο η VCL (αλλά σίγουρα είναι πολύ δυνατό σε κάποια άλλα σημεία από αυτά που διαβάζω). Αν ξεκινούσα σήμερα πάντως θα επέλεγα κάτι που να είναι portable (σε πολλές πλατφόρμες) – μπορεί το QT, αλλά τον καιρό που επέλεξα οπτική πλατφόρμα για Windows development η VCL ήταν η καλύτερη επιλογή –και σε γενικές γραμμές εξακολουθεί να είναι (αλλά σε Windows πάντα και όχι άλλου).
bigN Δημοσ. 17 Μαρτίου 2009 Δημοσ. 17 Μαρτίου 2009 Για PDA programming πειραματίζομαι και εγώ με .NET CF και C# οπότε το VS .NET είναι μονόδρομος όσον αφορά το managed code για τα PDA εκτός βέβαια και αν θες να ασχοληθείς με native programming και εκεί οπότε υπάρχει η ανάλογη εκδοχή του MFC H εφαρμογούλα που είχα κάνει για PDA (Ασύρματη παραγγελιοληψία) δουλεύει μέχρι σήμερα άψογα ... και ο χρόνος που είχα αφιερωσει σάυτή (θεωρόντας πάντα ότι ξεκίνησα χωρίς να ξέρω τιπτα για C#) μου φάνηκε λογικός. Εκείνη την εποχή είχα κοιτάξει το QT (QT Creator) καθώς και (NetBeans) JAVA και απόλα μου φάνηκε το VS με το C# πιο φιλική λύση. Την NetBeans την χρησιμοποιώ και σήμερα για PHP coding. Αν ξεκινούσα σήμερα πάντως θα επέλεγα κάτι που να είναι portable (σε πολλές πλατφόρμες) – μπορεί το QT, αλλά τον καιρό που επέλεξα οπτική πλατφόρμα για Windows development η VCL ήταν η καλύτερη επιλογή –και σε γενικές γραμμές εξακολουθεί να είναι (αλλά σε Windows πάντα και όχι άλλου) Η αλήθεια είνια ότι με ενδιαφέρει μόνο η πλατφόρμα Windows (πραγματικά δεν έχω χρόνο να ασχοληθώ με άλλα λειτουργικά ... αν και θα το ήθελα) Σχετικά με το phD βρήκα κάτι που να μοιάζει αρκετά με αυτό που θέλω να κάνω αλλά είνια γραμμένο σε FORTRAN .... είνια πραγματικά τεράστιος κώδικας με τον οποίο θα ασχοληθώ αυτές τις μέρες.
Evgenios1 Δημοσ. 17 Μαρτίου 2009 Δημοσ. 17 Μαρτίου 2009 +1 για .net 3 GUI. Polyline: Για την αναπαραστηαση μιας συναρτησης Viewbox: για καλυτερη αναπαρασταση μιας συναρτησης Viewport3D: Για πολυ καλυτερη αναπαρασταση ΥΓ: Ενα απλο παραδιγμα για να δεις και την ευκολια code xaml > <Grid> <Canvas Height="200" Width="200" Name="canvas1" > <Polyline x:Name="X" Stroke="Black" Fill="Black" Points="0,100,200,100"/> <Polyline x:Name="Y" Stroke="Black" Fill="Black" Points="100,0,100,200"/> <Canvas.RenderTransform> <RotateTransform Angle="270" CenterX="100" CenterY="100"/> </Canvas.RenderTransform> </Canvas> </Grid> c# funcs >public partial class Window1 : Window { public Window1() { InitializeComponent(); sin(.1,20); } private void sin(double deep,double size) { Polyline p = new Polyline { Stroke = new SolidColorBrush(Colors.Red), Fill = new SolidColorBrush(Colors.Transparent) }; PointCollection pc = new PointCollection(); pc.Add(CreatePoint(0, 0)); for (double i = 0.0; i < 100.0/size; i+=deep) { pc.Add(CreatePoint (Math.Sin(i)*size,i*size)); } p.Points = pc; canvas1.Children.Add(p); } private Point CreatePoint(double x, double y) { return new Point(x + 100.0, y + 100.0); } } και αν δε θελεις xaml code > public partial class Window1 : Window { private Canvas mycanvas; public Window1() { InitializeComponent(); mycanvas = canvas; var btn = new Button { Content = "Sin", HorizontalAlignment = HorizontalAlignment.Right,Height=20 }; btn.Click += delegate { sin(.01, 20); }; this.Content = new Grid { Children = { mycanvas,btn } }; } private Canvas canvas { get { return new Canvas { Height = 200, Width = 200, Margin =new Thickness(0,30,0,0), HorizontalAlignment = HorizontalAlignment.Center, VerticalAlignment = VerticalAlignment.Top, Children = { new Polyline { Stroke=new SolidColorBrush(Colors.Black), Fill=new SolidColorBrush(Colors.Transparent), Points={new Point(100,0),new Point(100,200)} }, new Polyline { Stroke=new SolidColorBrush(Colors.Black), Fill=new SolidColorBrush(Colors.Transparent), Points={new Point(0,100),new Point(200,100)} } }, RenderTransform = new RotateTransform { CenterX = 100, CenterY = 100, Angle = 270 } }; } } private void sin(double deep, double size) { Polyline p = new Polyline { Stroke = new SolidColorBrush(Colors.Red), Fill = new SolidColorBrush(Colors.Transparent) }; PointCollection pc = new PointCollection(); pc.Add(CreatePoint(0, 0)); for (double i = 0.0; i < 100.0 / size; i += deep) { pc.Add(CreatePoint(Math.Sin(i) * size, i * size)); } p.Points = pc; mycanvas.Children.Add(p); } private Point CreatePoint(double x, double y) { return new Point(x + 100.0, y + 100.0); } } και αν κανεις χρηση του delegate > public partial class Window1 : Window { private Canvas mycanvas; public Window1() { InitializeComponent(); mycanvas = canvas; Button btnsin, btncos, btntan; btntan = new Button { Content = "Tan", VerticalAlignment = VerticalAlignment.Top, Height = 20 }; btnsin = new Button { Content = "Sin", HorizontalAlignment = HorizontalAlignment.Right,Height=20 }; btncos = new Button { Content = "Cos", HorizontalAlignment = HorizontalAlignment.Left, Height = 20 }; btnsin.Click += delegate { grafikiapikonisi(.01, 20,[color="red"]Math.Sin[/color]); }; btncos.Click += delegate { grafikiapikonisi(.01, 20, [color="red"]Math.Cos[/color]); }; btntan.Click += delegate { grafikiapikonisi(.01, 10, [color="red"]Math.Tan[/color]); }; this.Content = new Grid { Children = { mycanvas,btnsin,btncos,btntan } }; } private Canvas canvas { get { return new Canvas { Height = 200, Width = 200, Margin =new Thickness(0,30,0,0), HorizontalAlignment = HorizontalAlignment.Center, VerticalAlignment = VerticalAlignment.Top, Children = { new Polyline { Stroke=new SolidColorBrush(Colors.Black), Fill=new SolidColorBrush(Colors.Transparent), Points={new Point(100,0),new Point(100,200)} }, new Polyline { Stroke=new SolidColorBrush(Colors.Black), Fill=new SolidColorBrush(Colors.Transparent), Points={new Point(0,100),new Point(200,100)} } }, RenderTransform = new RotateTransform { CenterX = 100, CenterY = 100, Angle = 270 } }; } } private void grafikiapikonisi(double deep, double size,[color="red"]Func<double,double> math[/color]) { Polyline p = new Polyline { Stroke = new SolidColorBrush(Colors.Red), Fill = new SolidColorBrush(Colors.Transparent) }; PointCollection pc = new PointCollection(); pc.Add(CreatePoint(0, 0)); for (double i = 0.0; i < 100.0 / size; i += deep) { pc.Add(CreatePoint([color="Red"]math[/color](i) * size, i * size)); } p.Points = pc; mycanvas.Children.Add(p); } private Point CreatePoint(double x, double y) { return new Point(x + 100.0, y + 100.0); } }
gtroza Δημοσ. 17 Μαρτίου 2009 Δημοσ. 17 Μαρτίου 2009 υπάρχει και το mono project http://www.mono-project.com/Main_Page δεν ξέρω πόσο "ώριμο" είναι είμαι άσχετος με το θέμα .
Dr.Fuzzy Δημοσ. 17 Μαρτίου 2009 Δημοσ. 17 Μαρτίου 2009 GUI παντως μπορεις να φτιαξεις και στο MATLAB γρηγορα και ευκολα (δες το GUIDE). Αν θες mcc -a και το κανεις standalone .exe αρχειο.
bigN Δημοσ. 18 Μαρτίου 2009 Δημοσ. 18 Μαρτίου 2009 GUI παντως μπορεις να φτιαξεις και στο MATLAB γρηγορα και ευκολα (δες το GUIDE). Αν θες mcc -a και το κανεις standalone .exe αρχειο. Έχεις δίκιο και το είχα ψάξει κάποτε .... απλά μου φάνηκε τελείως πρωτόγονος τρόπος και δεν είχε καμία σχέση με αυτό που είχα στο μυαλό μου. Evgenios1; +1 για .net 3 GUI. 1. Polyline: Για την αναπαραστηαση μιας συναρτησης 2. Viewbox: για καλυτερη αναπαρασταση μιας συναρτησης 3. Viewport3D: Για πολυ καλυτερη αναπαρασταση Πολύ ωραία παραδείγματά σου φίλε... αυτό ήταν το επόμενο βήμα που θα έκανα δηλ η αναπαράσταση των αποτελεσμάτων σε γραφικές παραστάσεις.... βρήκα ZedGraph αν και δεν το δοκίμασα ακόμα.
Dr.Fuzzy Δημοσ. 18 Μαρτίου 2009 Δημοσ. 18 Μαρτίου 2009 Έχεις δίκιο και το είχα ψάξει κάποτε .... απλά μου φάνηκε τελείως πρωτόγονος τρόπος και δεν είχε καμία σχέση με αυτό που είχα στο μυαλό μου. Εχεις δικιο πριν αρκετα χρονια ηταν πρωτόγονα... Για του λογου του αληθες παντως σου κανω post ενα screenshot απο ενα app που εφτιαξα προσφατα.
bigN Δημοσ. 18 Μαρτίου 2009 Δημοσ. 18 Μαρτίου 2009 Βλέπωντας τη φώτο σου μπήκα σε πειρασμό να σκεφτώ σε πόσο χρόνο θα μπορούσα να το κάνω σε C# Εχεις δικιο πριν αρκετα χρονια ηταν πρωτόγονα... Για του λογου του αληθες παντως σου κανω post ενα screenshot απο ενα app που εφτιαξα προσφατα.
Dr.Fuzzy Δημοσ. 18 Μαρτίου 2009 Δημοσ. 18 Μαρτίου 2009 Βλέπωντας τη φώτο σου μπήκα σε πειρασμό να σκεφτώ σε πόσο χρόνο θα μπορούσα να το κάνω σε C# Σε MATLAB το app που βλεπεις αντιστοιχει σε 100 (80 χωρις τα σχόλια!) γραμμες κωδικα (GUI + Engine). Αν θες να φτιαξεις κατι που εχει μαθηματικα και γραφικες παραστασεις τοτε νομιζω οτι το MATLAB ειναι οτι καλυτερο μπορεις να διαλεξεις. H C# δεν μπορω να πω οτι μου αρεσει...και δεν βλεπω και τον λογο. Το ιδιο app το εχω φτιαξει για πλακα και σε C (οχι C++) με απευθειας χρηση του WinApi για το GUI.
bigN Δημοσ. 18 Μαρτίου 2009 Δημοσ. 18 Μαρτίου 2009 To gui που έχω φτιαξει είναι πιο πολύπλοκο... αλλά θα ενσωματώνει και γραφικές παραστάσεις... Μου άρεσε το MATLAB κυρίως για την φιλικότητά του και την ευκολία με την οποία μπορώ να κάνω έλεγχο στις πράξεις .... Σε MATLAB το app που βλεπεις αντιστοιχει σε 100 (80 χωρις τα σχόλια!) γραμμες κωδικα (GUI + Engine). Αν θες να φτιαξεις κατι που εχει μαθηματικα και γραφικες παραστασεις τοτε νομιζω οτι το MATLAB ειναι οτι καλυτερο μπορεις να διαλεξεις. H C# δεν μπορω να πω οτι μου αρεσει...και δεν βλεπω και τον λογο. Το ιδιο app το εχω φτιαξει για πλακα και σε C (οχι C++) με απευθειας χρηση του WinApi για το GUI.
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.