PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : 3d frage


Gast
2007-08-31, 00:43:37
Hallo,
ich versuche ein Programm zu schreiben
welches einen 3d Würfel auf dem Bildschirm darstellt.
Soweit so gut der Würfel ist zu sehen und man kann mit der Maus um ihn
herumfahren. Dabei tritt nun folgendes Problem auf, wenn man den Würfel 90° um die y Achse dreht verschiebt sich die xz-Ebene scheinbar mit. das führt dazu, das beim betrachten von der Seite(90°) die zu mir zeigende Seite nicht nach oben rotiert wenn ich um die x-Achse rotiere, sondern um die z-Achse (scheinbar).Ich benutze zur Translation die üblichen sin/cos Formeln(keine Matrizen ist mir noch zu hoch).
Alle tutorials die ich gelesen hab enden dort leider mit Verweis auf Matrizen. :-(.
Kurzum ich bräuchte mal einen Link der das Thema fortführt oder ein Schlagwort für diesen Effekt.
Ewige Dankbarkeit garantiert !

Neomi
2007-08-31, 01:02:10
Matrixrechnung ist kein Effekt, sondern eine extrem wichtige Grundlage für 3D-Grafik. Aus dem Bauch heraus würde ich dir empfehlen, dir das DirectX-SDK zu holen und in der Doku den "Getting started"-Teil durchzuarbeiten. Da sollte einiges zu Transformationen per Matrizen stehen.

Edit:
Für deinen konkreten Fall sollte dir das hier helfen...
http://de.wikipedia.org/wiki/Roll-Pitch-Yaw-Winkel

Gast
2007-08-31, 02:16:21
Matrixrechnung ist kein Effekt, sondern eine extrem wichtige Grundlage für 3D-Grafik. Aus dem Bauch heraus würde ich dir empfehlen, dir das DirectX-SDK zu holen und in der Doku den "Getting started"-Teil durchzuarbeiten. Da sollte einiges zu Transformationen per Matrizen stehen.

Danke für deine Antwort ! Aber ohje ich wollt mich da garnicht so reinsteigern, wie gesagt das Programm für den Würfel steht schon und ich möchte nur noch erreichen das der Würfel sich so dreht als wenn eine Kamera um sein Zentrum kreist. Hier mal ein Link der dieses (Fehl)Verhalten zeigt
Versuche mal den Würfel zu drehen wenn winkely 90° ist
http://www.kirupa.com/developer/actionscript/rotation_center.htm
Ich benutze die rotations Formeln laut Tutorial so :
(y-Rotation Beispiel)
wy=ly*Cosinus(winkely)-lz*Sinus(winkely)
wz=lz*Cosinus(winkely)+ly*Sinus(winkely)
das funktioniert auch korrekt
und die drei Rotationsformeln sind ziemlich kompakt und überschaubar (für mich).
Ist denn der nächste Schritt nur noch mit Matrizen realisierbar ?
Ich habe hier noch ein älteres Directxbuch und da steht leider sehr wage umschrieben Folgendes :
-Kamera verschieben in den Nullpunkt
-Berechnen der Koordinaten mit Hilfe der Rotationgleichungen
-Addition der letzten Position
???
Code gabs wohl mal auf einer Cd aber die gibt es leider nicht mehr :-(

ps ich meinte oben nicht translation sondern rotation