cs_supergrey
Messages postés475Date d'inscriptionvendredi 27 juin 2003StatutMembreDernière intervention20 septembre 2010
-
3 janv. 2005 à 16:54
Pamaury
Messages postés341Date d'inscriptionjeudi 3 avril 2003StatutMembreDernière intervention17 juin 2008
-
4 janv. 2005 à 20:51
Salut, voila le probleme:
J'ai deux vecteurs 3D, V(xv,yv,zv) et P(xp,yp,zp), et je voudrais calculer les vecteurs v0 et v1 de sorte que:
v0+v1=V (somme vectoriel)
v0=k*P (k: un coeff)
v0 perpendiculaire à v1
Merci!
Pamaury
Messages postés341Date d'inscriptionjeudi 3 avril 2003StatutMembreDernière intervention17 juin 20083 3 janv. 2005 à 21:29
bonjour,
je ne pense pas dire de bétises en disant que c'est pas possible pour tous V et P .
Maintenant une piste :
v0 = k * P donc:
v0.x = k * xp;
v0.y = k * yp;
v0.z = k * zp;
Ensuite :
v1 + v0 V donc v1 V - v0 d'où :
v1.x = xv - k * xp
v1.y = xv - k * yp
v1.z = xv - k * zp
ensuite pour que v0 et v1 soit perpendiculaire bah le coefficient k ne
change rien puisque deux vecteur dont l'un est k fois l'autre n'ont que
leur norme de différentes donc tout dépend de V et P .
Une autre piste : si le dot product deux vecteur est nul alors c'est
deux vecteurs sont perpendiculaire donc si v0 perpendiculaire v1 alors
DotProduct(v0, v1)=0
soit :
v0.x * v1.x + v0.y * v1.y + v0.z * v1.z = 0
on développe avec les vrai coeff:
k * xp * ( xv - k * xp ) + k * yp * ( yv - k * yp ) + k * zp * ( zv - k * zp ) =0
k en facteur :
k * ( xp * ( xv - k * xp ) + yp * ( yv - k * yp ) + zp * ( zv - k * zp ) ) =0
donc c'est frai si k=0 ce qui logique mais inconcevable donc on peut ignorer k et chercher à annuler le reste !
xp * ( xv - k * xp ) + yp * ( yv - k * yp ) + zp * ( zv - k * zp ) =0
xp * xv + yp * yv + zp * zv = k * ( xp² + yp² + zp²)
DotProduct(V,P) = k * ( xp² + yp² + zp²)
DotProduct(V,P) / ( xp² + yp² + zp²) = k
voilà je sais pas si c'est juste mais à mon avis çà marche pas pour tout V et P
çà c'est si tu connait pas k et dans ce cas çà devrait(là encore je
suis pas sûr) marcher sauf pour xp² + yp² + zp² = 0 soit xp=0 ET yp=0
ET zp=0 donc impossible
cs_supergrey
Messages postés475Date d'inscriptionvendredi 27 juin 2003StatutMembreDernière intervention20 septembre 2010 3 janv. 2005 à 22:06
En fait quelqu'un m'a aider, ca ressemble un peu a ce que tu a fait d'ailleur merci, voila:
k= ((xp*xv)+(yp*yv)+(zp*zv) ) / ( xp²+yp²+zp²)
apres c'est facile de calculer v0 et v1