Opengl,ya qlq1???
meryam-2009
Messages postés
153
Statut
Membre
-
meryam-2009 Messages postés 153 Statut Membre -
meryam-2009 Messages postés 153 Statut Membre -
Bonjour,
merci d'avance pour avoir répondre à mes soucis
j'essaye de faire marcher un petit programme ui a comme objectif dessiner une maison et un soleil, puis les faire bouger , ...etc
ben ce qui ne veut pas marcher , c'est le soleil , et voilà mon petit code
la maison s'affiche , mais le soleil non , pkoi???
merci d'avance pour avoir répondre à mes soucis
j'essaye de faire marcher un petit programme ui a comme objectif dessiner une maison et un soleil, puis les faire bouger , ...etc
ben ce qui ne veut pas marcher , c'est le soleil , et voilà mon petit code
la maison s'affiche , mais le soleil non , pkoi???
14 réponses
mnt le prblm se développe, car le soleil s'affiche au coin de la fenetre , et ne veut pas s'afficher à la position que je veux , voilà le code ,
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
#include <GL/glut.h>
void redim(int l,int h)
{
glViewport(0,0,l,h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(0,l,0,h);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}
void maison()
{
glColor3f(0.9,0.93333,0.9254);
glTranslatef(0.0f, 0.0f, 0.08); //translation (zoom)
// glRotatef(yrot,0.0f, 1.0f, 0.0f);
// glRotatef(xrot,1.0f, 0.0f, 0.0f);
glBegin(GL_QUADS);
glVertex2i(80,30);
glVertex2i(80,150);
glVertex2i(240,150);
glVertex2i(240,30);
glEnd();
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glColor3f(0,0,0);
glBegin(GL_LINES);
glVertex2i(250,150);
glVertex2i(240,30);
glEnd();
glColor3f(0.85,0.85,0.85);
glBegin(GL_TRIANGLES);
glVertex2i(70,150);
glVertex2i(160,200);
glVertex2i(250,150);
glEnd();
glColor3f(0,0,0);
glBegin(GL_LINE_STRIP);
glVertex2i(100,30);
glVertex2i(100,70);
glVertex2i(140,70);
glVertex2i(140,30);
glEnd();
}
void trait()
{
glColor3f(0,0,0);
glBegin(GL_LINES);
glVertex2i(30,20);
glVertex2i(470,20);
glVertex2i(250,150);
glVertex2i(240,30);
glEnd();
}
void plat()
{
glColor3f(0.79,0,0);
glBegin(GL_POLYGON);
glVertex2i(160,200);
glVertex2i(250,150);
glVertex2i(390,150);
glVertex2i(300,200);
glEnd();
}
void traitmais()
{
glColor3f(0,0,0);
glBegin(GL_LINES);
glVertex2i(180,190);
glVertex2i(315,190);
glVertex2i(200,180);
glVertex2i(325,180);
glVertex2i(220,170);
glVertex2i(340,170);
glVertex2i(240,160);
glVertex2i(355,160);
glEnd();
}
void traitmaison()
{
glColor3f(0,0,0);
glBegin(GL_LINES);
glVertex2i(200,200);
glVertex2i(200,190);
glVertex2i(260,200);
glVertex2i(260,190);
glVertex2i(290,190);
glVertex2i(290,180);
glVertex2i(250,170);
glVertex2i(250,160);
glVertex2i(240,190);
glVertex2i(240,180);
glVertex2i(280,180);
glVertex2i(280,170);
glVertex2i(320,170);
glVertex2i(320,160);
glVertex2i(360,160);
glVertex2i(360,150);
glVertex2i(270,160);
glVertex2i(270,150);
glVertex2i(310,160);
glVertex2i(310,150);
glVertex2i(250,150);
glVertex2i(240,30);
glEnd();
}
void maisontwo()
{
glColor3f(0.9,0.93333,0.9254);
glBegin(GL_QUADS);
glVertex2i(240,150);
glVertex2i(240,30);
glVertex2i(360,30);
glVertex2i(360,150);
glEnd();
}
/*void tronc()
{
glColor3f(1,0.5,0);
glBegin(GL_POLYGON);
glVertex2i(360,30);
glVertex2i(370,100);
glVertex2i(380,100);
glVertex2i(390,30);
glEnd();
}
void arbre()
{
glColor3f(0,1,0.4);
glBegin(GL_POLYGON);
glVertex2i(370,100);
glVertex2i(310,120);
glVertex2i(350,140);
glVertex2i(400,140);
glVertex2i(440,120);
glVertex2i(380,100);
glEnd();
glBegin(GL_POLYGON);
glVertex2i(350,140);
glVertex2i(260,190);
glVertex2i(375,240);
glVertex2i(490,190);
glVertex2i(400,140);
glEnd();}*/
void drawSun(){
//q glLoadIdentity();
gluLookAt(100,100,80,60,60,60,60,60,60);
glColor3f(1,0,0);
glutSolidSphere(200,15,15);
}
void affichage(void)
{
maison();
trait();
//soleil();
plat();
traitmais();
traitmaison();
maisontwo();
drawSun();
glFlush();
}
static void
key(unsigned char key, int x, int y)
{
switch (key)
{
case 'q':
exit(0);
break;
}
}
const GLfloat light_ambient[] = { 0.0f, 0.0f, 0.0f, 1.0f };
const GLfloat light_diffuse[] = { 1.0f, 1.0f, 1.0f, 1.0f };
const GLfloat light_specular[] = { 1.0f, 1.0f, 1.0f, 1.0f };
const GLfloat light_position[] = { 2.0f, 7.0f, 5.0f, 0.0f };
const GLfloat mat_ambient[] = { 0.7f, 0.7f, 0.7f, 1.0f };
const GLfloat mat_diffuse[] = { 0.8f, 0.8f, 0.8f, 1.0f };
const GLfloat mat_specular[] = { 1.0f, 1.0f, 1.0f, 1.0f };
const GLfloat high_shininess[] = { 100.0f };
int main(int argc, char *argv[])
{
/* Initialisation */
glutInit(&argc,argv);
/* Initialisation des paramètres */
glutInitWindowPosition(50,50);
glutInitWindowSize(500,500);
// glutInitDisplayMode(GLUT_RGBA|GLUT_SINGLE);
/* Création de la fenêtre */
glutCreateWindow("petit travail");
/* Association d'évènements */
//glutDisplayFunc(display);
glutDisplayFunc(affichage);
glutReshapeFunc(redim);
glutKeyboardFunc(key);
// glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
/* Initialisation de OpenGL */
glClearColor(1,1,1,1);
//glEnable(GL_CULL_FACE);
glCullFace(GL_BACK);
//glEnable(GL_DEPTH_TEST);
// glDepthFunc(GL_LESS);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
glEnable(GL_LIGHT0);
// glEnable(GL_NORMALIZE);
glEnable(GL_COLOR_MATERIAL);
//glEnable(GL_LIGHTING);
// glLightfv(GL_LIGHT0, GL_AMBIENT, light_ambient);
glLightfv(GL_LIGHT0, GL_DIFFUSE, light_diffuse);
glLightfv(GL_LIGHT0, GL_SPECULAR, light_specular);
glLightfv(GL_LIGHT0, GL_POSITION, light_position);
glColorMaterial(GL_FRONT, GL_AMBIENT);
glMaterialfv(GL_FRONT, GL_AMBIENT, mat_ambient);
glMaterialfv(GL_FRONT, GL_DIFFUSE, mat_diffuse);
glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specular);
glMaterialfv(GL_FRONT, GL_SHININESS, high_shininess);
glutMainLoop();
return EXIT_SUCCESS;
}
que pensiez vous ???
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
#include <GL/glut.h>
void redim(int l,int h)
{
glViewport(0,0,l,h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(0,l,0,h);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}
void maison()
{
glColor3f(0.9,0.93333,0.9254);
glTranslatef(0.0f, 0.0f, 0.08); //translation (zoom)
// glRotatef(yrot,0.0f, 1.0f, 0.0f);
// glRotatef(xrot,1.0f, 0.0f, 0.0f);
glBegin(GL_QUADS);
glVertex2i(80,30);
glVertex2i(80,150);
glVertex2i(240,150);
glVertex2i(240,30);
glEnd();
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glColor3f(0,0,0);
glBegin(GL_LINES);
glVertex2i(250,150);
glVertex2i(240,30);
glEnd();
glColor3f(0.85,0.85,0.85);
glBegin(GL_TRIANGLES);
glVertex2i(70,150);
glVertex2i(160,200);
glVertex2i(250,150);
glEnd();
glColor3f(0,0,0);
glBegin(GL_LINE_STRIP);
glVertex2i(100,30);
glVertex2i(100,70);
glVertex2i(140,70);
glVertex2i(140,30);
glEnd();
}
void trait()
{
glColor3f(0,0,0);
glBegin(GL_LINES);
glVertex2i(30,20);
glVertex2i(470,20);
glVertex2i(250,150);
glVertex2i(240,30);
glEnd();
}
void plat()
{
glColor3f(0.79,0,0);
glBegin(GL_POLYGON);
glVertex2i(160,200);
glVertex2i(250,150);
glVertex2i(390,150);
glVertex2i(300,200);
glEnd();
}
void traitmais()
{
glColor3f(0,0,0);
glBegin(GL_LINES);
glVertex2i(180,190);
glVertex2i(315,190);
glVertex2i(200,180);
glVertex2i(325,180);
glVertex2i(220,170);
glVertex2i(340,170);
glVertex2i(240,160);
glVertex2i(355,160);
glEnd();
}
void traitmaison()
{
glColor3f(0,0,0);
glBegin(GL_LINES);
glVertex2i(200,200);
glVertex2i(200,190);
glVertex2i(260,200);
glVertex2i(260,190);
glVertex2i(290,190);
glVertex2i(290,180);
glVertex2i(250,170);
glVertex2i(250,160);
glVertex2i(240,190);
glVertex2i(240,180);
glVertex2i(280,180);
glVertex2i(280,170);
glVertex2i(320,170);
glVertex2i(320,160);
glVertex2i(360,160);
glVertex2i(360,150);
glVertex2i(270,160);
glVertex2i(270,150);
glVertex2i(310,160);
glVertex2i(310,150);
glVertex2i(250,150);
glVertex2i(240,30);
glEnd();
}
void maisontwo()
{
glColor3f(0.9,0.93333,0.9254);
glBegin(GL_QUADS);
glVertex2i(240,150);
glVertex2i(240,30);
glVertex2i(360,30);
glVertex2i(360,150);
glEnd();
}
/*void tronc()
{
glColor3f(1,0.5,0);
glBegin(GL_POLYGON);
glVertex2i(360,30);
glVertex2i(370,100);
glVertex2i(380,100);
glVertex2i(390,30);
glEnd();
}
void arbre()
{
glColor3f(0,1,0.4);
glBegin(GL_POLYGON);
glVertex2i(370,100);
glVertex2i(310,120);
glVertex2i(350,140);
glVertex2i(400,140);
glVertex2i(440,120);
glVertex2i(380,100);
glEnd();
glBegin(GL_POLYGON);
glVertex2i(350,140);
glVertex2i(260,190);
glVertex2i(375,240);
glVertex2i(490,190);
glVertex2i(400,140);
glEnd();}*/
void drawSun(){
//q glLoadIdentity();
gluLookAt(100,100,80,60,60,60,60,60,60);
glColor3f(1,0,0);
glutSolidSphere(200,15,15);
}
void affichage(void)
{
maison();
trait();
//soleil();
plat();
traitmais();
traitmaison();
maisontwo();
drawSun();
glFlush();
}
static void
key(unsigned char key, int x, int y)
{
switch (key)
{
case 'q':
exit(0);
break;
}
}
const GLfloat light_ambient[] = { 0.0f, 0.0f, 0.0f, 1.0f };
const GLfloat light_diffuse[] = { 1.0f, 1.0f, 1.0f, 1.0f };
const GLfloat light_specular[] = { 1.0f, 1.0f, 1.0f, 1.0f };
const GLfloat light_position[] = { 2.0f, 7.0f, 5.0f, 0.0f };
const GLfloat mat_ambient[] = { 0.7f, 0.7f, 0.7f, 1.0f };
const GLfloat mat_diffuse[] = { 0.8f, 0.8f, 0.8f, 1.0f };
const GLfloat mat_specular[] = { 1.0f, 1.0f, 1.0f, 1.0f };
const GLfloat high_shininess[] = { 100.0f };
int main(int argc, char *argv[])
{
/* Initialisation */
glutInit(&argc,argv);
/* Initialisation des paramètres */
glutInitWindowPosition(50,50);
glutInitWindowSize(500,500);
// glutInitDisplayMode(GLUT_RGBA|GLUT_SINGLE);
/* Création de la fenêtre */
glutCreateWindow("petit travail");
/* Association d'évènements */
//glutDisplayFunc(display);
glutDisplayFunc(affichage);
glutReshapeFunc(redim);
glutKeyboardFunc(key);
// glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
/* Initialisation de OpenGL */
glClearColor(1,1,1,1);
//glEnable(GL_CULL_FACE);
glCullFace(GL_BACK);
//glEnable(GL_DEPTH_TEST);
// glDepthFunc(GL_LESS);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
glEnable(GL_LIGHT0);
// glEnable(GL_NORMALIZE);
glEnable(GL_COLOR_MATERIAL);
//glEnable(GL_LIGHTING);
// glLightfv(GL_LIGHT0, GL_AMBIENT, light_ambient);
glLightfv(GL_LIGHT0, GL_DIFFUSE, light_diffuse);
glLightfv(GL_LIGHT0, GL_SPECULAR, light_specular);
glLightfv(GL_LIGHT0, GL_POSITION, light_position);
glColorMaterial(GL_FRONT, GL_AMBIENT);
glMaterialfv(GL_FRONT, GL_AMBIENT, mat_ambient);
glMaterialfv(GL_FRONT, GL_DIFFUSE, mat_diffuse);
glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specular);
glMaterialfv(GL_FRONT, GL_SHININESS, high_shininess);
glutMainLoop();
return EXIT_SUCCESS;
}
que pensiez vous ???
C'est le seul objet que tu fait de manière différente. Ton glutLookAt est peut être mal employé.
Et je trouve bizarre que glutsolidSphere ne prenne que 3 arguments. J'aurai dit minimum 4 : 3 pour la position et un pour le rayon.
Et je trouve bizarre que glutsolidSphere ne prenne que 3 arguments. J'aurai dit minimum 4 : 3 pour la position et un pour le rayon.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
à vous CHAR SNIPEUR
mon glulookat n'est pas mal positionné , car la postion du caméra ,
et pour solidspher ça ne prend que 3 arguments,
que dois-je faire???,
mon glulookat n'est pas mal positionné , car la postion du caméra ,
et pour solidspher ça ne prend que 3 arguments,
que dois-je faire???,
en faite , je dois modifier l'origine du sphere,au lieu qu'il soit (0,0,0) qu'il soit par example (x,y,z) ou sera le centre du sphere de cette façon je pourrais la postionner ou je ve ,
comment puis-je aboutir à ça ??,
comment puis-je aboutir à ça ??,
Je te conseil d'aller du plus simple au plus compliqué. Je ne maîtrise pas les objets glut, mais je pense que tu devrais déjà essayer de mettre le soleil au centre, ou d'afficher un objet plus simple là ou tu veux.
Sinon, normalement, pour modifier l'emplacement d'un objet il faut utiliser une translation.
Sinon, normalement, pour modifier l'emplacement d'un objet il faut utiliser une translation.
bonjour
désolée mais ce petit travail va me.....
je ne comprends pas pourquoi je ne peux pas affficher des objets genre sphere ou cone 3d, et des objets genre polygone ou triangles ????,
svp ,
désolée mais ce petit travail va me.....
je ne comprends pas pourquoi je ne peux pas affficher des objets genre sphere ou cone 3d, et des objets genre polygone ou triangles ????,
svp ,
as tu testé ce que je t'ai conseiller plutôt que relancé toute les 10 min !
Le forum n'est pas à ta disposition, il faut un peu de temps pour avoir une réponse !
Le forum n'est pas à ta disposition, il faut un peu de temps pour avoir une réponse !
http://www.manpagez.com/man/3/glutSolidSphere/
Je pense que les arguments que tu met c'est n'importe quoi.
Je pense que les arguments que tu met c'est n'importe quoi.