bonjour,
Je suis en train de faire un petit programme.
Je ne sais pas si je serais clair donc je vais essayer d'expliquer ça plus clairement:
J'ai trois points point1,point2,point3
-les position initial des P1,P2,P3
je voudrais calculer les trois angle x, y et z de point2
j ai essayer avec le produit scalaire entre
vecteur1 =P2P1
vecteur2=P2P3
mais j ai trouve une seule angle
Bonjour,
Ca n'est pas très clair....
avec trois points tu peux générer trois vecteurs mais en chaque point il n'y a qu'un seul angle (il n'y a qu'un angle par sommet d'un triangle...).
et donc:
Bonjour,
j ai jointé l'image de ma configuration
je veut trouver les angle en x,y,z qui appliqué à P2 afin de mettre P3 dans sa position final P'3
des fois je pense c est un problème de cinématique inverse (trouver les angles afin de mettre un point dans une autre position désirer) mais je mes suis dis non parce que dans notre cas nous avons les position et on cherche les angles
Navré mais je ne comprends toujours pas ce que tu veux dire par "les angles en x,y,z"...
Si le but est de connaître la valeur des angles et entre le vecteur P2P3 et le plan xy, respectivement le plan yz (on suppose l'origine en P2) alors là, oui tu peux utiliser le produit scalaire mais dans ce cas il n'y a que deux angles et le point P1 est inutile.
Si tu veux calculer la rotation de P2 amenant P3 sur P3', ça risque d'être compliqué car il me semble qu'il y en a une infinité, en effet il faudrait une troisième condition pour en obtenir une de manière unique.
Néanmoins, les rotations dans l'espace est un sujet déjà beaucoup étudié... Je te laisse aller jeter un coup d'oeil ici () peut-être trouveras-tu ton bonheur.
Bon
N'importe laquelle.
Si R est ta rotation de l'espace. Alors R est une isométrie et s'écrit de la forme R(x) = Mx + b où M est une matrice orthogonale et b un vecteur.
Tu as déjà deux conditions:
R(P2) = P2 (pour que P2 soit le centre de rotation)
R(P3) = P3' (pour amener P3 sur P3')
Il te reste à trouver un couple de points pour la troisième condition. Celle-ci dépendra de ce que tu veux faire de cette rotation. Une idée pourrait être de dire que l'on veut que R(P1) = P1, dans ce cas R est une rotation d'axe passant par P1, P2 et amenant P3 sur P3'. On pourrait aussi demander que R((1,2,3)) = (19,29,39) bref, c'est comme tu veux.
Après quoi tu auras un "gros" système à résoudre. Néanmoins, tu sais que tu veux que R(P2) = P2, il serait donc judicieux de poser b = P2, puis en utilisant le fait que la matrice M doit être orthogonale et les deux autres conditions tu devrais pouvoir déterminer les coefficients de ta matrice.
Mais comme dit dans mon topique précédant, il doit exister des méthodes extrêmement rapide (informatiquement parlant) pour déterminer de telles matrices. En effet j'ai souvenir d'un cours de modélisation de l'ADN où il fallait calculer des milliers de rotations dans le genre et les composer etc... Tout se faisait avec le vecteur de Cayley, la formule de Rodriguez et tout leurs amis.
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :