Bonjour. Voila, j'ai un problème qui peut paraitre bénin et pourtant je m'embourbe totalement dans les problèmes, je sollicite donc votre aide précieuse .
Je travaille donc en 3D en OpenGL, je posséde une display liste qui grosso modo créé une pointe de fleche. Cette fleche est créé pointe sur l'origine et le reste en bas, la fleche pointe donc sur l'axe Y vers le haut.
Maintenant dans ma fonction qui dessine j'ai deux points (que je nommerai pour ici p1 et p2) qui a eux deux forme une direction. Je voudrais maintenant afficher la display list avec la pointe pointant sur p1 et suivant la direction du vecteur créé par (p1,p2).
Seulement voila comment faire ? j'ai essayé avec des projetés pour calculer les angles un a un mais cela ne fonctionne pas. J'ai lu alors qu'il y avait des formules pour créé des matrices de transformations, je crois qu'elles utilisent les angles d'Euler. Seulement si jai bien compris on a besoin de l'angle de rotation total, et moi je ne l'ai pas ! J'ai juste une direction ...
Je suis donc perdu n'arrivant pas a faire suivre a une fleche une simple direction ... j'ai essayé d'utiliser la fonction gluLookAt ainsi :
void gluLookAt( p1.x , p1.y , p1.z , p2/x , p2.y , p2.z , 0.0 , 1.0 , 0.0)
pour replacer la scene au point et dans la bonne direction, ce qui devrait fonctionner non ? et bien pourtant non ...
N'existe t'il pas une fonction qui sache faire les rotations 3D ? Ou quelqu'un pourrait il tout simplement m'aiguiller gentillement .
Merci pour toute aide, et si j'ai mal expliqué n'hésitez pas a demander plus d'information .
ReiVon
Partager