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

TECAE 4 Messages postés vendredi 19 mai 2006Date d'inscription 10 avril 2007 Dernière intervention - 14 déc. 2006 à 17:26 - Dernière réponse : ScSami 1490 Messages postés mercredi 5 février 2003Date d'inscription 3 décembre 2007 Dernière intervention
- 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
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
ScSami 1490 Messages postés mercredi 5 février 2003Date d'inscription 3 décembre 2007 Dernière intervention - 15 déc. 2006 à 17:07
3
Merci
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". )

Merci ScSami 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 72 internautes ce mois-ci

Commenter la réponse de ScSami
ScSami 1490 Messages postés mercredi 5 février 2003Date d'inscription 3 décembre 2007 Dernière intervention - 15 déc. 2006 à 09:26
0
Merci
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". )
Commenter la réponse de ScSami
jmfmarques 7668 Messages postés samedi 5 novembre 2005Date d'inscription 22 août 2014 Dernière intervention - 15 déc. 2006 à 11:41
0
Merci
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...
Commenter la réponse de jmfmarques
TECAE 4 Messages postés vendredi 19 mai 2006Date d'inscription 10 avril 2007 Dernière intervention - 15 déc. 2006 à 13:34
0
Merci
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
Commenter la réponse de TECAE
jmfmarques 7668 Messages postés samedi 5 novembre 2005Date d'inscription 22 août 2014 Dernière intervention - 15 déc. 2006 à 16:54
0
Merci
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.
Commenter la réponse de jmfmarques

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.