J'ont cette boîte définie, qui a une taille de (1, 2, 3) qui fait pivoter le long des trois axes à 45 °:Pourquoi la rotation selon trois axes est différente de la rotation de chaque axe séparément?
Transform {
rotation 1 1 1 0.7854
children [
Shape {
appearance Appearance { material Material {} }
geometry Box { size 1 2 3 }
}
]
}
Mais quand j'applique la même rotation le long de chaque axe séparément Je reçois un autre résultat:
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 }
}
]
}
]
}
]
}
Wikipédia me dit que je peux multiplier toutes les matrices de rotation comme ceci: R = R (x) R (y) R (z)?
Ceci est le résultat du code ci-dessus:
Merci. Quelle formule voulez-vous dire? J'ai recherché cette matrice de formule/transformation mais je n'ai pas trouvé la matrice appropriée. Si j'utilise la multiplication R (z) R (y) R (z) est obtenir le résultat appliqué à trois rotations pas la rotation que je cherche (1, 1, 1) <--- celui-ci je voudrais avoir. –
Recherchez "Matrice de rotation à partir de l'axe et de l'angle" ici https://en.m.wikipedia.org/wiki/Rotation_matrix. La formule suppose que l'axe est un vecteur unitaire, vous devrez donc le normaliser. J'espère que cela t'aides. – user19318
C'est exactement ça! Merci beaucoup!!! –