2017-06-23 14 views
0

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:

Result

Antwort

1

Die erste Drehung, die Sie beschreiben, ist nicht eine Drehung um die drei Achsen, sondern eine Drehung um die Achse (1,1,1), die anders. Es ist dann normal, dass Sie nicht das erwartete Ergebnis erhalten. Wenn Sie möchten, können Sie die Rotationsmatrix für die Achsen (1,1,1) und Winkel 45 aus der Formel von Wikipedia berechnen und mit der Multiplikation der Rotationsmatrix für jede Achse x, y, z und Winkel 45 und vergleichen Sie werden sehen, dass Sie verschiedene Matrizen erhalten.

+0

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. –

+1

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

+0

Das ist genau das! Vielen Dank!!! –

Verwandte Themen