3D-Objekt im Raum drehen

Hallo zusammen,

da das Problem im Endeffekt rein mathematisch ist, such ich hier einfach mal etwas Hilfe.

Ich programmiere gerade etwas an einer Software rum. Dort kann ich mir eine 3D-Punktwolke inklusive Koordinatensystem darstellen lassen. Es gibt auch die Möglichkeit das Koordinatensystem über die drei Raumwinkel drehen zu lassen.

Ich würde nun aber gerne statt um die Raumachsen (Hochachse, Querachse, …) um die Achsen des Koordinatensystems drehen. Wenn also bspw. die Z-Achse schon schräg im Raum steht und ich um diese Achse drehen will.

Ich muss das wahrscheinlich auf eine Drehung der Raumachsen runtertransformieren und das wiederum auf 2D projizieren (das geringe Problem). Aber irgendwie kann ich mir den nötigen Formeln nicht selber herleiten. hat da vielleicht einer einen Tipp für mich?

Gruß

Hallo,

Wenn also bspw. die Z-Achse schon schräg im Raum steht und ich
um diese Achse drehen will.

der um den Winkel φ gedrehte Vektor (vor Drehung r, nach Drehung r’) berechnet sich gemäß

\vec{r};’ = D;\vec{r}

mit der Drehmatrix

D = \left(
\begin{array}{ccc}
c + (1-c) u^2 & (1-c)uv + sw & (1-c)uw - sv\
(1-c)uv-sw & c+(1-c)v^2 & (1-c)vw + su\
(1-c)uw+sv & (1-c)vw - su & c+(1-c)w^2
\end{array}
\right)

Dabei ist \vec{e} = (u, v, w) der Einheitsvektor, der in Richtung der Drehachse zeigt. s := sinφ, c := cosφ.

Gruß
Martin

PS: Die Drehmatrix sieht wirklich so aus :wink: Prüf ruhig nach, ob sie \vec{e} als Eigenvektor zum Eigenwert 1 hat, ob sie DTD = I (Einheitsmatrix) erfüllt, oder ob ihre Determinante 1 ist. Es stimmt alles.

Danke dir Martin,

ist weniger kompliziert als ich dachte und man kann es sich eigentlich sogar recht gut herleiten.
Ich werd das dann mal die Tage ins Programm aufnehmen (oder an jemanden abtreten das zu tun :smiley: ).

Gruß,
TeaAge