Salut, je uis un petit nouveau.
Afin de réaliser un générateur d'arbre aléatoire en C++ je souhaite effectuer une rotation d'une branche selon une autre branche.
Mon problème est que je sais faire des rotations suivant les axes X Y Z mais pas suivant l'axe de la branche parente.
Je connait deux vecteurs situé sur la branche parente et donc es ce qu'en faisant le produit u^v j'obtiens l'axe de rotation?
et qu'elle serait la matrice de rotation?
Bon ca faisait plusieurs jours que je cherchais et j'étais partie sur une mauvaise piste.
En posant ma question je pense que cela m'a éclairé. Ce qui se conçoit bien s'énonce clairement et les mots pour le dire arrive aisément(le dicton préféré de mon père).
Bref je crois avoir la réponse(en tout cas mon arbre n'a plus de branche qui se barre vers le bas après une rotation translation.
c'était pas un produit vectoriel qu'il fallait faire mais:
Vecteur *axeRotation =
new Vecteur(origine->getX()-origine_parent->getX(),
origine->getY()-origine_parent->getY(),
origine->getZ()-origine_parent->getZ());
origine c'est le point de départ de la nouvelle branche, origine_parent c'est le point de départ de la branche parente.
bon apres faut faire une rotation suivant ce vecteur, faut le normaliser et utiliser la matrice de rotation suivant un axe quelconque.
si y en a qui veulent le code de la transformation je pourrait le poster. Mais bon c'est un forum de physique ici et non de programmation.
Si je fais erreur dans mon approche merci de me le signaler