Dessiner un cylindre entre 2 points 3D

Résolu
TECAE Messages postés 4 Date d'inscription vendredi 19 mai 2006 Statut Membre Dernière intervention 10 avril 2007 - 14 déc. 2006 à 17:26
ScSami Messages postés 1488 Date d'inscription mercredi 5 février 2003 Statut Membre Dernière intervention 3 décembre 2007 - 15 déc. 2006 à 17:07
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
A voir également:

5 réponses

ScSami Messages postés 1488 Date d'inscription mercredi 5 février 2003 Statut Membre Dernière intervention 3 décembre 2007 24
15 déc. 2006 à 17:07
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". )
3
ScSami Messages postés 1488 Date d'inscription mercredi 5 février 2003 Statut Membre Dernière intervention 3 décembre 2007 24
15 déc. 2006 à 09:26
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". )
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
15 déc. 2006 à 11:41
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...
0
TECAE Messages postés 4 Date d'inscription vendredi 19 mai 2006 Statut Membre Dernière intervention 10 avril 2007
15 déc. 2006 à 13:34
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
15 déc. 2006 à 16:54
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.
0
Rejoignez-nous