paspas
17/01/2007, 01h39
salut
voila un astuce en coffee pour eviter grandement* le gimbal effect l' orsque on veut pointer ou orienter un objet dans l espace
cette effet vient du fait que nous utilison tj la rotation HPB* pour orienter nos objet*or il est difficile de connaitre avec precision la valeur des rotation H, P et B simultanement
l' asuce consiste
a utisiser les matrices* *( nooooooon parter pas )
pour resumer :* les matrice cinema4d comporte 4 vecteurs
V0* :* la position du point
V1* :* *l'axe des X
v2* :* * l' axe des y
v3* :* * l' 'axe des Z
ce qui veut dire que cette matrice peut placer un objet a une position V0 et l' orienter suivant des axe defini : V1 V2 et V3
imaginon 2 point* p1 et p2* dans l' espace* p1 et p2 sont des vecteurs
var m = new (Matrix);* // on crée une nouvelle matrice
m -> SetV0(p1);* *// position de l' objet*
m -> SetV1(vnorm(p2-p1)) ; // on defini l'axe des X
m -> SetV2(Vnorm(vcross(p2-p1),vector(0,1,0)))); // on defini l axe des y perpendiculaire a l axe des X
m -> SetV3(Vnorm(vcross(p2-p1),vector(0,0,1)))); // on defini l axe des Z perpendiculaire a l axe des X
objet ->SetMg(m); // on rentre la matrice dans l objet
et normalement l objet serra toujours* orienter suivant la direction des point p1 et p2
attention les cas limite sont ceux ou les point se superpose
paspas
voila un astuce en coffee pour eviter grandement* le gimbal effect l' orsque on veut pointer ou orienter un objet dans l espace
cette effet vient du fait que nous utilison tj la rotation HPB* pour orienter nos objet*or il est difficile de connaitre avec precision la valeur des rotation H, P et B simultanement
l' asuce consiste
a utisiser les matrices* *( nooooooon parter pas )
pour resumer :* les matrice cinema4d comporte 4 vecteurs
V0* :* la position du point
V1* :* *l'axe des X
v2* :* * l' axe des y
v3* :* * l' 'axe des Z
ce qui veut dire que cette matrice peut placer un objet a une position V0 et l' orienter suivant des axe defini : V1 V2 et V3
imaginon 2 point* p1 et p2* dans l' espace* p1 et p2 sont des vecteurs
var m = new (Matrix);* // on crée une nouvelle matrice
m -> SetV0(p1);* *// position de l' objet*
m -> SetV1(vnorm(p2-p1)) ; // on defini l'axe des X
m -> SetV2(Vnorm(vcross(p2-p1),vector(0,1,0)))); // on defini l axe des y perpendiculaire a l axe des X
m -> SetV3(Vnorm(vcross(p2-p1),vector(0,0,1)))); // on defini l axe des Z perpendiculaire a l axe des X
objet ->SetMg(m); // on rentre la matrice dans l objet
et normalement l objet serra toujours* orienter suivant la direction des point p1 et p2
attention les cas limite sont ceux ou les point se superpose
paspas