Dessiner un cylindre entre 2 points 3D [Résolu]

Signaler
Messages postés
4
Date d'inscription
vendredi 19 mai 2006
Statut
Membre
Dernière intervention
10 avril 2007
-
Messages postés
1488
Date d'inscription
mercredi 5 février 2003
Statut
Membre
Dernière intervention
3 décembre 2007
-
Bonjour, 

   je cherche, à dessiner un simple cylindre entre 2 points définis par leurs coordonnées A(xa,ya,za) et B(xb,yb,zb). j'ai vu qu'il existait une fonction glucylinder avec la bibliotheque GLUT mais n'esxite t'il pas une autre fonction plus simple où l'on rentre le point de depart, le point d'arrivée et le diametre. Sinon, comment utiliser glucylinder, existe t'il d'autres méthodes. 

Merci d'avance 

TECAE

5 réponses

Messages postés
1488
Date d'inscription
mercredi 5 février 2003
Statut
Membre
Dernière intervention
3 décembre 2007
22
Wai enfin, si tu décides de coder toi-même la création d'un volum de ce type, le mieux est de faire ainsi :
- Définir l'axe de hauteur (X,Y ou Z)  [facultatif]
- Définir son Rayon, sa Hauteur et ses résolutions (nombre de cotés du cercle et nombre de segments de la hauteur)
- Calculer les points puis définir ses faces
- Le placer dans son environnement via Translation(X,Y,Z) et Rotation(X,Y,Z)

Pour définir ses points, rien de plus simple : utiliser une des équations pour dessiner un cercle !
X = CentreX + Rayon * Cos(AngleEnRadian)


Y = CentreX + Rayon * Sin(AngleEnRadian)



Là, évidemment, ce sera hyper lent... faut optimiser via, par exemple, une table des sinus et cosinus... enfin, au besoin (de vitesse ou non).
Pi pour bien optimiser le truc, tu le traces simplement en 2D dans un tableau linéaire (du nombre de points des cotés du cercle) puis tu copie le tout en modifiant le Z (ou X ou Y selon) et en gardant les deux autres intacte et ce, le nombre de segments en hauteur que tu veux !!!
Enfin, c'est pas sorcier quoi ! (mais 'chais pas si 'chuis très clair là !!!)

Enjoy


<hr size="2" width="100%" />




( Si une réponse vous convient, cliquez sur le bouton "Réponse acceptée". )
Messages postés
1488
Date d'inscription
mercredi 5 février 2003
Statut
Membre
Dernière intervention
3 décembre 2007
22
Ben apparemment non ! Tu rendrais d'ailleurs sans doute un grand service à la communauté si tu nous programmais une petite fonction simplifiant celle du OpenGL !

Enjoy


<hr size="2" width="100%" />




( Si une réponse vous convient, cliquez sur le bouton "Réponse acceptée". )
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
21
Surtout qu'il manque dans la définition de son dessin un point important : le dessin sera bien évidemment différent selon la position de l'observateur du cylindre !


Vu de dessus et à la perpendiculaire de son centre, par exemple, ce sera un simple cercle... et, dans une autre position, un simple rectangle !

Bon...
Messages postés
4
Date d'inscription
vendredi 19 mai 2006
Statut
Membre
Dernière intervention
10 avril 2007

en fait je cherche à le dessiner en 3D, donc le point de vu n'a pas d'importance, puisque ensuite je peux me deplacer autour.........................

TECAE
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
21
Ah !!!
Tu veux donc, si j'ai bien compris, faire ta propre application 3 D et veut "dessiner un cylindre"...
Il va bien falloir, selon ton algorithme :
-soit que tu dessines au moins 2 vues (pour un cylindre)
-soit que tu définisses l'essentiel, à savoir un diamètre et une hauteur

---que ton algorithme de dessin à partir de ces données considère l'angle d'observation (c'est celà "tourner") et utilise la trigonométrie appliquée à ces données.