Salut fig,
Sympa ton code ! Je regarderai le fonctionnement de ce code sur PC. Merci.
On manque de symbole pour s'exprimer en texte. Pas simple pour la 3D. Alors, en plus si tu postes sur le forum anglais...
Je ne sais pas si ça, ça te parle :
Code : Tout sélectionner
Structure xyz
x.D
y.D
z.D
EndStructure
Structure ijk ; ou uvw qu'importe : ce sont des vecteurs
i.xyz
j.xyz
k.xyz
EndStructure
Structure Noeud ; ou sommet
*O ; origine (position) (zéro ou sommet parent)
; position orientée
*ijk ; orientation*
P.xyz ; coefficients
Q.xyz ; position phys (vecteurs O + P*ijk)(facultatif)
EndStructure
Un simple sommet c'est quand même assez lourd.
Une orientation est initialisée comme ici
Code : Tout sélectionner
x y z <= ce sont les directions spatiales
i 1 0 0
j 0 1 0 } vecteurs i j et k
k 0 0 1
Une orientation (ou orientation normalisée c'est un vecteur de longueur (norme) 1)
Donc pour le vecteur i par exemple c'est x*x + y*y + z*z = 1 la vérification.
Toutes les rotations sont possibles. Mais ça permet surtout de se représenter un quaternion en 3D (2 sphères symétriquement opposées dans un hyper-espace) pour le comprendre et constater qu'on peut faire une structure de sommet plus légère (on gagne 5 flottants).
S'il n'y a pas d'économie de mémoire à faire et s'il n'y a qu'une rotation à faire simultanément, ce n'est pas la peine d'utiliser de quaternions.
(*) C'est ce champ Orientation de la structure Sommet qui peut être remplacé par un quaternion.