Entwickler-Ecke
Multimedia / Grafik - Zeichenprogramm
K_one - Di 01.06.10 16:31
Titel: Zeichenprogramm
Hallo!
Ich möchte ein Programm schreiben, mit dem man geometrische Figuren zeichnen kann. Genau genommen soll es eine Hilfestellung für die Konstruktion sein (so, als würde man es auf dem Papier zeichen) und muss Punkte, Geraden und Kegelschnitte in allen möglichen Lagen darstellen können.
Ich hab mich für C# entschieden (und nicht für Java, was eine schwere Entscheidung war) und habe leider wenig Ahnung von 2D-Darstellungen (also absolut keine 3D-Darstellung!). Das Programm sollte im Grunde ähnlich wie GeoGebra aussehen. Wie stelle ich nun die "Zeichnung" dar? Soll ich DirectX oder XNA verwenden? Oder gibt es dafür bessere Lösungen?
Bedanke mich schon im Vorhinein für Antworten, Vorschläge und Hilfestellungen!
MfG Martin
K_one - Di 01.06.10 21:12
Hi!
Danke! Dann werd ich mich mal damit befassen!
Wenns Probleme gibt werde ich hier posten!
lg Martin
K_one - Mi 02.06.10 00:27
Hallo!
Ich stoße gerade auf mein erstes Problem:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21:
| public partial class DG : Form { private Bitmap mybtm; private Graphics myg;
public DG() { InitializeComponent(); }
private void draw() { mybtm = new Bitmap(_widthpx, _heigthpx); myg = Graphics.FromImage(mybtm); myg.DrawLine(Pens.Black, new Point(0, 20), new Point(20, 50)); myg.DrawLine(Pens.Black, new Point(20, 0), new Point(50, 20)); pbaxes.Image = mybtm; myg.Dispose(); } } |
Es fehlt jetzt einiges an Code, aber das Wesentliche ist da.
draw() wird ziemlich oft aufgerufen und irgendwie sind meine 4 GB RAM nach kürzester Zeit voll und das Programm gibt mir eine Fehlermeldung, weil es kein neues Bitmap instanzieren kann.
Was mache ich falsch? Warum füllt sich mein RAM?
lg Martin
danielf - Mi 02.06.10 09:13
Das hatten wir im Forum schonmal. Du musst das image von pbaxes zuerst disposen bevor du das neue zuweist.
Gruß
K_one - Di 22.06.10 18:45
Hi!
Stehe vor meinem nächsten Problem:
Wie realisiere ich, dass Punkte auf meiner Zeichenfläche auf Mouseover (also bei Mouseover fett werden und dann beim Klick ausgewählt werden) reagieren?
Sollte ich eine art Tabelle erstellen, in der immer nachgeprüft wird, ob der Cursor in der Nähe von Punkten ist? Oder gibt es dafür effektivere Lösungen?
Danke! lg
Kha - Di 22.06.10 21:03
Glaube nicht, dass es je zum Flaschenhals wird, die Punkte einfach nacheinander durchzugehen ;) .
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!