So habe ich diese Box definiert, die eine Größe von (1, 2, 3), die ich mit 45 ° entlang aller drei Achsen drehen:Warum ist die Drehung entlang der drei Achsen anders als die Drehung jeder Achse separat?
Transform {
rotation 1 1 1 0.7854
children [
Shape {
appearance Appearance { material Material {} }
geometry Box { size 1 2 3 }
}
]
}
Aber wenn I gelten die gleiche Drehung entlang jeder Achse separat ich bekomme ein anderes Ergebnis:
Transform {
rotation 0 0 1 0.7854
children [
Transform {
rotation 0 1 0 0.7854
children [
Transform {
rotation 1 0 0 0.7854
children [
Shape {
appearance Appearance { material Material {} }
geometry Box { size 1 2 3 }
}
]
}
]
}
]
}
Wikipedia mir sagt, ich kann alle Drehmatrizen wie folgt multiplizieren: R = R (x) R (y) R (z)?
Dies ist das Ergebnis des obigen Code:
Vielen Dank. Welche Formel meinst du? Ich habe diese Formel/Transformationsmatrix gesucht, konnte aber nicht die passende finden. Wenn ich die Multiplikation verwende R (z) R (y) R (z) ist das Ergebnis, wie auf drei Umdrehungen angewendet, nicht die Rotation, die ich suche (1, 1, 1) <--- diese würde ich gerne haben. –
Suchen Sie nach "Rotationsmatrix von Achse und Winkel" hier https://en.m.wikipedia.org/wiki/Rotation_matrix. Die Formel nimmt an, dass die Achse ein Einheitsvektor ist, daher müssen Sie sie normalisieren. Hoffe das hilft. – user19318
Das ist genau das! Vielen Dank!!! –