TECAE
Messages postés4Date d'inscriptionvendredi 19 mai 2006StatutMembreDernière intervention10 avril 2007
-
14 déc. 2006 à 17:26
ScSami
Messages postés1488Date d'inscriptionmercredi 5 février 2003StatutMembreDerniè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.
ScSami
Messages postés1488Date d'inscriptionmercredi 5 février 2003StatutMembreDernière intervention 3 décembre 200724 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". )
ScSami
Messages postés1488Date d'inscriptionmercredi 5 février 2003StatutMembreDernière intervention 3 décembre 200724 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". )
jmfmarques
Messages postés7668Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 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 !
jmfmarques
Messages postés7668Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 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.