Laden...

Kugel drehen Direct X

Erstellt von bezarre vor 10 Jahren Letzter Beitrag vor 10 Jahren 1.041 Views
B
bezarre Themenstarter:in
22 Beiträge seit 2014
vor 10 Jahren
Kugel drehen Direct X

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

49.485 Beiträge seit 2005
vor 10 Jahren

Hallo bezarre,

eine Möglichkeit ist: erst drehen, dann verschieben.

herbivore

5.657 Beiträge seit 2006
vor 10 Jahren

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

B
bezarre Themenstarter:in
22 Beiträge seit 2014
vor 10 Jahren

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.