Je manipule des volumes 3D en Java3D.
Mon volume possède une matrice 4x4 qui représente les transformations (rotation, translation...) de faites sur celui-ci.
Initialement c'est une matrice identité(4).
La dernière colonne est pour les translations.
La derniere ligne est juste pour être carré :zen:
Le reste pour les 3 rotations.
Le problème c'est pour faire une translation selon l'axe du volume qui est une tige. :marteau:
Je suis arrivé à connaître les angles de ma tige (volume3D), puis je fais de la trigo de collège pour appliquer mes 2 translations et :mur:
- Code: Tout sélectionner
translation.x = dy *z_factor*(Math.cos(angle_z)+Math.cos(angle_y));
translation.z = dy * z_factor*(Math.sin(angle_z)+Math.sin(angle_x));
translation.y = dy*z_factor*(Math.cos(angle_x)+Math.sin(angle_y));
dy est le mouvement de la souris
z_factor juste un coef réducteur = sensibilité