Probleme vecteur 3D et projection orthogonale [Résolu]

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

Votre réponse

5 réponses

Meilleure réponse
Pamaury 341 Messages postés jeudi 3 avril 2003Date d'inscription 17 juin 2008 Dernière intervention - 3 janv. 2005 à 21:29
3
Merci
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

Merci Pamaury 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 84 internautes ce mois-ci

Commenter la réponse de Pamaury
Meilleure réponse
cs_supergrey 475 Messages postés vendredi 27 juin 2003Date d'inscription 20 septembre 2010 Dernière intervention - 3 janv. 2005 à 22:06
3
Merci
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

Merci cs_supergrey 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 84 internautes ce mois-ci

Commenter la réponse de cs_supergrey
Pamaury 341 Messages postés jeudi 3 avril 2003Date d'inscription 17 juin 2008 Dernière intervention - 4 janv. 2005 à 18:35
0
Merci
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
Commenter la réponse de Pamaury
cs_supergrey 475 Messages postés vendredi 27 juin 2003Date d'inscription 20 septembre 2010 Dernière intervention - 4 janv. 2005 à 20:10
0
Merci
oui oui sans doute, c'est juste que je connaissait pas "DotProduct"
Commenter la réponse de cs_supergrey
Pamaury 341 Messages postés jeudi 3 avril 2003Date d'inscription 17 juin 2008 Dernière intervention - 4 janv. 2005 à 20:51
0
Merci
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
Commenter la réponse de Pamaury

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.