Probleme 3D opengl
encours
Messages postés
159
Statut
Membre
-
encours Messages postés 159 Statut Membre -
encours Messages postés 159 Statut Membre -
bonjour
je travaille avec opengl avec visual studion 2010
je travaille en 3D
j'ai crée un carré rouge sur la surface et je veux mettre sur ce carré un triangle jaune mais lorsque j'affiche le triangle ne se colore pas bien avec le jaune : je sais pas pourquoi
voici le code
est ce que vous avez une idée
merci
je travaille avec opengl avec visual studion 2010
je travaille en 3D
j'ai crée un carré rouge sur la surface et je veux mettre sur ce carré un triangle jaune mais lorsque j'affiche le triangle ne se colore pas bien avec le jaune : je sais pas pourquoi
voici le code
est ce que vous avez une idée
merci
#include "stdafx.h"
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#include <Windows.h>
#include <GL/glut.h>
/* l'heure systeme
SYSTEMTIME Time;
GetLocalTime(&Time);
printf("Nous sommes le : %02d/%02d/%04d.\n",
Time.wDay, Time.wMonth, Time.wYear);
printf("Et il est : %02dh %02dmn %02ds %03dms.\n",
Time.wHour, Time.wMinute, Time.wSecond, Time.wMilliseconds);
*/
static void key(unsigned char k, int x, int y)
{
switch (k) {
case 27: //Echaper
exit(0);
break;
default:
return;
}
glutPostRedisplay();
}
void drawTriangle (GLfloat x1, GLfloat y1, GLfloat x2,
GLfloat y2, GLfloat x3, GLfloat y3, GLfloat z)
{
glBegin (GL_TRIANGLES);
glVertex3f (x1, y1, z);
glVertex3f (x2, y2, z);
glVertex3f (x3, y3, z);
glEnd ();
}
void Dessiner()
{
glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
glMatrixMode( GL_MODELVIEW );
glLoadIdentity( );
gluLookAt(5.5,6.5,3,0,0,0,0,0,1);
glColor3ub(255,0,0);
glBegin(GL_QUADS);
glVertex3d(6,-6,0);
glVertex3d(-6,-6,0);
glVertex3d(-6,6,0);
glVertex3d(6,6,0);
glEnd();
glColor3f(0,1,0);
drawTriangle(1.6,1.6,7,1.6,1.6,7,0);
glColor3f(0,1,0);
drawTriangle(-1.6,1.6,-7,1.6,-1.6,7,0);
// les axes
glColor3ub(255,0,255);
glBegin(GL_LINES);
glVertex3d(1,0,0);
glVertex3d(0,0,0);
glEnd();
//
glColor3ub(0,255,0);
glBegin(GL_LINES);
glVertex3d(0,1,0);
glVertex3d(0,0,0);
glEnd();
//
glColor3ub(0,255,255);
glBegin(GL_LINES);
glVertex3d(0,0,1);
glVertex3d(0,0,0);
glEnd();
glFlush();
}
int main(int argc, char** argv)
{
glutInit(&argc, argv);
//glutInitDisplayMode( GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH );
glutInitWindowSize(800,500);
glutInitWindowPosition(50,50);
glutCreateWindow("fenetre OpenGl");
glMatrixMode( GL_PROJECTION );
glLoadIdentity();
gluPerspective(40,(double)640/480,1,100);
glEnable(GL_DEPTH_TEST);
glutDisplayFunc(Dessiner);
//Dessiner();
glutKeyboardFunc(key);
glutMainLoop();
return 0;
}
A voir également:
- Probleme 3D opengl
- Architecte 3d gratuit - Télécharger - Architecture & Déco
- 3d slash - Télécharger - 3D
- Smartshow 3d - Télécharger - Visionnage & Diaporama
- Paint 3d mac - Télécharger - Dessin & Illustration
- Google maps satellite 3d - Guide
2 réponses
bonjour,
tu dessines ton triangle dans le carré, à la coordonnée 0.
C'est à dire que les deux objets sont dans le même plan, logique que tu ne vois pas ce que tu attends. OpenGL ne raisonne pas en je dessine avant et je dessine après, il a des objets qu'il affiche.
Si tu veux voir correctement ton triangle, il faut le décaler un peu du carré (genre 1e-3). Il y a peut être des solutions OpenGL plus propre pour dire que le triangle a "priorité" sur le carré, mais je ne connais pas.
tu dessines ton triangle dans le carré, à la coordonnée 0.
C'est à dire que les deux objets sont dans le même plan, logique que tu ne vois pas ce que tu attends. OpenGL ne raisonne pas en je dessine avant et je dessine après, il a des objets qu'il affiche.
Si tu veux voir correctement ton triangle, il faut le décaler un peu du carré (genre 1e-3). Il y a peut être des solutions OpenGL plus propre pour dire que le triangle a "priorité" sur le carré, mais je ne connais pas.