Opengl,ya qlq1???

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???

14 réponses

Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
Tu n'as pas mis ton code ;)
0
meryam-2009 Messages postés 153 Statut Membre 40
 
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 ???
0
Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
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.
0
emmmmma Messages postés 2 Statut Membre
 
etes vous une architecte!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
meryam-2009 Messages postés 153 Statut Membre 40
 
non, je ne suis pas une architecte , :)
0
meryam-2009 Messages postés 153 Statut Membre 40
 
à 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???,
0
meryam-2009 Messages postés 153 Statut Membre 40
 
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 ??,
0
Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
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.
0
meryam-2009 Messages postés 153 Statut Membre 40
 
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 ,
0
meryam-2009 Messages postés 153 Statut Membre 40
 
SVP , ya qlq'1?????
0
meryam-2009 Messages postés 153 Statut Membre 40
 
svp ya qlq'1?????????
0
Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
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 !
0
Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
http://www.manpagez.com/man/3/glutSolidSphere/
Je pense que les arguments que tu met c'est n'importe quoi.
0
meryam-2009 Messages postés 153 Statut Membre 40
 
merci pour vous ,
ben j'ai essayé de dissiner dans un premier temps , le soleil, alors la maison et les autres ont disparu , ,
désolée , mais je n'ai pas dormis la nuit à cause de ce travail, et je n'ai rein abouti à la fin
0