[C++ OPENGL] Dessiner un pauvre tube )=
Résolu
Ghkaeitq
Messages postés
13
Statut
Membre
-
Ghkaeitq Messages postés 13 Statut Membre -
Ghkaeitq Messages postés 13 Statut Membre -
Bonjour,
Je me lance dans la prog 3d et j'en chie un max. J'ai passé la journée à galérer et je ne comprend pas ou je bloque. Pas moyen d'afficher un pauvre tube. Pouvez vous me dire ce qui ne va pas ? Merci d'avance !
Le type point :
L'appel dans ma fonction "Dessiner()". Le quad de test s'affiche sans problème mais le tube me sort un vieux trait tout pourri :-(
Et enfin ma fonction Tube. J'ai recalculé et je suis sur des valeurs mathématiques. Je me demande si j'ai pas un problème avec mes tableaux de points :
Quelqu'un peut m'aider ? Je sature là... J'ai passé la journée dessus. Merci d'avance.
Je me lance dans la prog 3d et j'en chie un max. J'ai passé la journée à galérer et je ne comprend pas ou je bloque. Pas moyen d'afficher un pauvre tube. Pouvez vous me dire ce qui ne va pas ? Merci d'avance !
Le type point :
struct point
{
float x;
float y;
float z;
};
void Dessiner();
void Tube(float x, float y, float z, float rb, float rh, float h, int n);
L'appel dans ma fonction "Dessiner()". Le quad de test s'affiche sans problème mais le tube me sort un vieux trait tout pourri :-(
glBegin(GL_LINE_STRIP);
glColor3ub(255,0,0); //face rouge
glVertex3d(1.0,1.0,1.0);
glVertex3d(1,1,-1);
glVertex3d(-1,1,-1);
glVertex3d(-1,1,1);
glEnd();
glBegin(GL_LINE_STRIP);
Tube(0,0,0,2,2,2,10);
//Cornet(0,0,0,2,1,10);
glEnd();
Et enfin ma fonction Tube. J'ai recalculé et je suis sur des valeurs mathématiques. Je me demande si j'ai pas un problème avec mes tableaux de points :
void Tube(float x, float y, float z, float rb, float rh, float h, int n)
{
int i;
point Pt[2*n];
for(i=0;i<=n;i++)
{
Pt[i].x=x+cos(i/360*n)*rb;
Pt[i].y=y;
Pt[i].z=z+sin(i/360*n)*rb;
}
for(i=n;i<=(2*n);i++)
{
Pt[i].x=x+cos(i/360*n)*rh;
Pt[i].y=y+h;
Pt[i].z=z+sin(i/360*n)*rh;
}
for(i=1;i<n;i++)
{
glColor3ub(0,0,255);
glVertex3d(Pt[i].x,Pt[i].y,Pt[i].z);
glVertex3d(Pt[i+1].x,Pt[i+1].y,Pt[i+1].z);
glVertex3d(Pt[i+n+1].x,Pt[i+n+1].y,Pt[i+n+1].z);
glVertex3d(Pt[i+n].x,Pt[i+n].y,Pt[i+n].z);
}
glVertex3d(Pt[n].x,Pt[n].y,Pt[n].z);
glVertex3d(Pt[1].x,Pt[1].y,Pt[1].z);
glVertex3d(Pt[n+1].x,Pt[n+1].y,Pt[n+1].z);
glVertex3d(Pt[2*n].x,Pt[2*n].y,Pt[2*n].z);
}
Quelqu'un peut m'aider ? Je sature là... J'ai passé la journée dessus. Merci d'avance.
A voir également:
- [C++ OPENGL] Dessiner un pauvre tube )=
- Dessiner un tableau - Guide
- Save tube - Télécharger - Téléchargement & Transfert
- Tube ripper - Télécharger - Conversion & Codecs
- Av tube - Télécharger - Téléchargement & Transfert
- Movie tube - Télécharger - TV & Vidéo
1 réponse
Bon ben si un jour quelqu'un a le même problème...
Opération mathématique sans cast les entiers : Pas bien ! Tous les points étaient bien traités mais arrondis à l'entier le plus proche (donc tous à la même valeur dans mon cas).
En plus les valeurs de trigo étaient pas si bonnes que ça, faut multiplier par 2 Pi et non diviser T_T
Enfin bref. Résolu. Merci quand même
Opération mathématique sans cast les entiers : Pas bien ! Tous les points étaient bien traités mais arrondis à l'entier le plus proche (donc tous à la même valeur dans mon cas).
En plus les valeurs de trigo étaient pas si bonnes que ça, faut multiplier par 2 Pi et non diviser T_T
Enfin bref. Résolu. Merci quand même