red faction | tbp a écrit :
Solution tangente, vectorisons.
Disons que l'on a a { l1,l2,l3 }, et par rotation b { l2,l3,l1 }, c { l3,l1,l2 }.
Prenons le masque de mask_ab = a > b et mask_ac = a > c, alors le masque mask = mask_ab ^ mask_ac désigne la valeur médiane.
Extraction du masque etc...
SSE ftw.
|
tu peut detailller un peu sil te plait??
sinon on a aussi une autre routine qui prend de la place :
Code :
- cx=cos(t*0.6);
- cy=cos(t*0.1);
- cz=cos(t*0.4);
- sx=sin(t*0.6);
- sy=sin(t*0.1);
- sz=sin(t*0.4);
- dx1=dx*cz-dy*sz;
- dy1=dx*sz+dy*cz;
- dz1=dz;
- dx2=dx1;
- dy2=dy1*cx-dz1*sx;
- dz2=dy1*sx+dz1*cx;
- dx3=dx2*cy-dz2*sy;
- dy3=dy2;
- dz3=dx2*sy+dz2*cy;
|
pour le moment on la simplifié par :
Code :
- c=sin(t);
- s=sin(t);
- rotate(dx,dy,c,s);
- rotate(dy,dz,c,s);
- rotate(dx,dz,c,s);
- void rotate(&dx,&dy,c,s)
- fx=dx*c-dy*s;
- fy=dx*s+dy*c;
- dx=fx;
- dy=fy;
|
bon ca fait pas tout fait la meme chose (calcul de c et s) mais bon |