Probleme vecteur 3D et projection orthogonale

Résolu
cs_supergrey
Messages postés
475
Date d'inscription
vendredi 27 juin 2003
Statut
Membre
Dernière intervention
20 septembre 2010
- 3 janv. 2005 à 16:54
Pamaury
Messages postés
341
Date d'inscription
jeudi 3 avril 2003
Statut
Membre
Dernière intervention
17 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!

5 réponses

Pamaury
Messages postés
341
Date d'inscription
jeudi 3 avril 2003
Statut
Membre
Dernière intervention
17 juin 2008
3
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

on développe

-k * xp² + xp * xv + -k * yp² + yp * yv + -k * zp² + zp * zv = 0

ici on factorise un petit peu

-k * ( xp² + yp² + zp²) + xp * xv + yp * yv + zp * zv =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



Voilà en espérant avoir répondu à ta question

SI QUELQU'UN PEUT VERIFIER ????

A m a u r y
3
cs_supergrey
Messages postés
475
Date d'inscription
vendredi 27 juin 2003
Statut
Membre
Dernière intervention
20 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
3
Pamaury
Messages postés
341
Date d'inscription
jeudi 3 avril 2003
Statut
Membre
Dernière intervention
17 juin 2008
3
4 janv. 2005 à 18:35
oui bah çà revient exactement au même puisque DotProduct(p,V)/( xp²+yp²+zp²) donne
(xp*xv)+(yp*yv)+(zp*zv)/( xp²+yp²+zp²) donc c'est pareil

A m a u r y
0
cs_supergrey
Messages postés
475
Date d'inscription
vendredi 27 juin 2003
Statut
Membre
Dernière intervention
20 septembre 2010

4 janv. 2005 à 20:10
oui oui sans doute, c'est juste que je connaissait pas "DotProduct"
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Pamaury
Messages postés
341
Date d'inscription
jeudi 3 avril 2003
Statut
Membre
Dernière intervention
17 juin 2008
3
4 janv. 2005 à 20:51
ah ok bah désolé alors . Si tu veux la formule :

DotProdutc(V;P)=P.x*V.x + P.y*V.y + P.z*V.z

DotProdutc(V;P)=||V||*||P||*cos(V;P)



en fait cela correspond à la projection de V sur P donc si V et P sont
perpendiculaire alors le dot product(produit scalaire) est nul .

A m a u r y
0