Hallo alle zusammen,
ich habe ein kleines Problem bei dem mir sicherlich jemand von euch schnell auf die Sprünge helfen kann.
Ich habe eine Kugel und möchte diese mittels der Pfeiltasten nach links bzw rechts und nach oben bzw. unten drehen.
Ich nutze c# mit Managed DirectX. Das zu gehörige Event (Tasten druck) fange ich bereits ab und merke zähle jeweils für X (links bzw. rechts) und Y (hoch bzw. runter) einen Wert hoch bzw. runter.
Diesee Werte habe ich dann ganz naiv in
d3dDevice.Transform.World = Matrix.RotationYawPitchRoll(rotationX, rotationY, 0.0f);
eingegeben. doch habe ich jetzt die Kugel bereits um X verschoben so fange ich beim nach oben bzw. unten gehen an Kreise zu drehen, was ja nicht gewollt ist. Ich stehe im moment völlig auf dem Schlauch... ich hoffe jemand kann mir da weiterhelfen.
Danke euch!
Gruß
Bezarre
Hallo bezarre,
eine Möglichkeit ist: erst drehen, dann verschieben.
herbivore
Hi bezarre,
für Transformationen wie Skalieren, Verschieben und Rotieren gibt es Transformations-Matrizen. Jedes Modell in der Szene hat seine eigene Matrix, die alle seine Transformationen beinhaltet und beim Rendern angewendet wird. Siehe z.B. DirectX and Matrices.
Christian
Weeks of programming can save you hours of planning
Hallo,
jaaa irgendwie ist mir kurz vor deiner Antwort auch so eine großartige Idee gekommen.
Ich habe
Matrix.RotationY
und
Matrix.RotationX
verwendet und schon lief das Ganze.
Danke für deine Antwort.