Hallo, für meinen LED-Cube wollte ich ein PC Tool zur Ansteuerung und zum Zusammenklicken von Animationen schreiben, bzw. zu deren Simulation ohne Hardware. Dafür muss ich den Würfel irgendwie darstellen. Komfortabel wär es wenn man den Würfel "drehen" könnte um ihn von allen Seiten zu sehen. Aber dafür reicht es wohl nicht mehr einfach nur Linien auf eine Form zu zeichnen, da muss man wohl mit 3D Zeugs ran. Sowas hab ich aber noch nie gemacht, würd mich also gern einarbeiten. Könnt ihr da ein relativ schlankes Framework empfehlen, was man auch schnell überblicken kann? OpenGL oder sowas? Dachte an C++ als Sprache. Oberflächen hab ich bisher immer mit Qt gemacht, da komm ich einigermasen zurecht. PS: bitte dran denken: hier soll kein Shooter mit dicker Engine entstehen. In der Praxis wird es wohl darauf hinauslaufen, ein paar hundert Kugeln würfelförmig im Raum zu verteilen...
Ich hatte mir vor vielen Jahren dieses Buch gekauft. Das war ganz nett, da wurden die mathematischen Grundlagen recht gut erklärt (Matrixrechnung). Ich hatte mir mit den Funktionen eine Steuerung für meine Platinenbohrmaschine auf dem PC geschrieben. Die Platine konnte komplett schief eingespannt sein und auch in der Größe durch den Drucker noch verzehrt. Durch manuelles anfahren der Eckpunkte wurde das erkannt und die Drilldaten entsprechend umgerechnet.
Da bist du mit OpenGL vermutlich am besten bedient: Lässt sich leicht in Qt integrieren, ist dokumentiert wie kaum eine andere Schnittstelle.
Mist Link fehlt: http://www.ebay.de/itm/BUCH-ATARI-ST-3D-Grafik-Programmierung-inkl-Begleitdiskette-Disk-Versiegelt-/181390896105
OpenGL ist perfekt! Normalerweise empfehle ich glBegin und glEnd nicht zu nutzen, aber für soetwas einfaches ist es am einfachsten. Ich empfehle http://wiki.delphigl.com, ist zwar nicht c, aber gut erklärt. Falls es doch etwas Hochwertigeres werden soll, empfehle ich VBOs und shader zu verwenden.
Das ist ein bisschen Gemoetrie, Schulstoff 8 Klasse reicht dafuer... aber OpenGL geht natuerlich auch.
Danke euch allen, ich werd mir die Links zu Gemüte führen. Was ich mich frage: wieso wird hier teilweise von Matrizenrechnungen und Geometrie geredet? Ich habe ja keine bewegten Objekte, z.B. Kanonenkugeln, für die ich eine Flugbahn berechnen müsste. Ich habe nur Kugeln, die sich ortsunveränderlich im Raum befinden und einmal erstellt werden müssen, und aus denen sich dann mein Würfel zusammensetzt. Jede Kugel entspricht einem "Pixel" des Würfels und kann entweder "an" (=weiß) oder "aus" (=schwarz sein). D.h. nach meinem Verständnis bräuchte ich zur Initialisierung folgendes: (Achtung, Pseudocode!)
1 | myCube[i] = new Kugel(x, y, z); // wird z.B. 512 mal ausgeführt |
Zur Laufzeit rufe ich dann etwa sowas auf:
1 | myCube[i].setColor(SCHWARZ); |
Mehr sollte das doch nicht sein? Wo kommt da die Mathematik ins Spiel? Die Perspektive des Raumes mit der Maus zu verstellen (drehen, zoomen, Kamere bewegen) sollte doch jedes 3D Framework mitbringen oder? Sowas programmiert man doch nicht selbst?!
Tach, was ist denn das Problem mit ein wenig Mathe? Was denkst du denn, wie so ein Framework funktioniert. Du must dem ja auch sagen, wo deine Kugeln sein sollen, wie schnell sie sich drehen sollen, wo die Kamera ist. Das wird in der Realität nun mal mit Matrizen gemacht. Wobei eigentlich reicht, wenn du weißt, was Matrizen sind. Grüße
Morrison schrieb: > Die Perspektive des Raumes mit der Maus zu verstellen (drehen, zoomen, > Kamere bewegen) sollte doch jedes 3D Framework mitbringen oder? Sowas > programmiert man doch nicht selbst?! Du hast schon recht. Die Matrizenrechnung wird vom Framework gemacht. Damit hast du in so einem einfachen Fall nichts zu tun. Was für dich vielleicht noch interessant wäre, wären Quaternionen. Damit kannst du den Würfel dann richtig schön mit der Maus drehen :-)
:
Bearbeitet durch User
tech schrieb: > was ist denn das Problem mit ein wenig Mathe? Hab kein Problem damit, als E-Techniker sollten Matrizen leicht von der Hand gehen. Mein letzter Beitrag sollte verdeutlichen, dass ich für mein Vorhaben nicht sehe, wo diese ins Spiel kommen. Aber danke euch, hab auf jeden Fall Anhaltspunkte!
Der Vollständigkeit halber sei auch OpenSceneGraph erwähnt. Wenn man irgendwann soweit ist, zum ersten Mal etwas compilieren zu können, sind die paar Kugeln einfach. Das osgviewer-Beispiel kann drehen, zoomen etc., du musst ihm nur statt der geladenen scene deine eigenen Kugeln unterschieben.
Morrison schrieb: > Mein letzter Beitrag sollte verdeutlichen, dass ich für mein Vorhaben > nicht sehe, wo diese ins Spiel kommen. Wenn du ein fertiges Framework benutzt, dann wirst du damit nicht unmittelbar in Berührung kommen. Wenn du aber selbst an die Sache ran gehst, dann bleibt es nicht aus, sich damit zu beschäftigen. Matrizen sind das um und auf in der kompletten hierarchischen Modellierung von Szenerien. Es reicht schon, dass du in deiner Szenerie ein paar Punkte selektieren willst und diese Punkte dann gemeinsam (und unter Beibehaltung ihrer relativen Positionierung zueinander) um eine bestimmte Achse drehen willst, die dann auch noch windschief im Raum liegt. Matrizen sind da einfach nur das mathematische Rüstzeug um derartige Beziehungen in einer vereinheitlichten Form (Verschiebung UND Rotation) beschreiben zu können.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.