begin process at 2012 05 29 15:13:23
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

OpenGL

 > 

pb affichage de polygone


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

pb affichage de polygone

mercredi 9 avril 2003 à 13:51:44 | pb affichage de polygone

dbtm

J'essaie d'afficher un polygone. Quand je fait tourner le polygone, il disparaît par moment.
Si j'aligne le polygone sur les axes et que je le tourne, çà marche bien, mais dès que je le mets en biais, le polygone se transforme en triangle ou disparaît complètement pour certains angles de rotation.

Merci pour toute aide.
mercredi 9 avril 2003 à 16:12:11 | Re : pb affichage de polygone

payen

tu peux mettre ton code, surtout l'initialisation, pour qu'on voit un peu?



-------------------------------
Réponse au message :
-------------------------------

> J'essaie d'afficher un polygone. Quand je fait tourner le polygone, il disparaît par moment.
> Si j'aligne le polygone sur les axes et que je le tourne, çà marche bien, mais dès que je le mets en biais, le polygone se transforme en triangle ou disparaît complètement pour certains angles de rotation.
>
> Merci pour toute aide.
mercredi 9 avril 2003 à 16:29:54 | Re : pb affichage de polygone

dbtm

OK: voici des morceaux du code
void init()
{
char* arPath[]={"texture/wood4.bmp"};
texture=new CTexture(1,arPath);
figure0=new CFigure(texture);
cadre=new CCadre(texture);

glClearColor(0.0,0.0,0.0,0.0);
}
void reshape(int w,int h)
{
glViewport(0,0,(GLsizei)w,(GLsizei)h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(75,1.33,0,120);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
gluLookAt(50,50,25,50,0,-50,0,1,0);
}
void main(int argc, char** argv)
{
raw_key=0;
action=action1;
action();
//lastKbVect=_dos_getvect(0x09);
//_dos_setvect(0x09,scannetouches);
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB| GLUT_DEPTH);
midscreenx=300;
glutInitWindowSize(2*midscreenx,500);
glutInitWindowPosition(1,1);
//glutFullScreen(); //qui bizarrement ne marche pas
glutCreateWindow("simple");
init();
glutDisplayFunc(display);
glutReshapeFunc(reshape);
ShowCursor(FALSE);
glutMotionFunc(souris);
glutPassiveMotionFunc(souris);
glutIdleFunc(anime);
_beginthread(scannetouches,0,NULL);
glutMainLoop();
end();
}

Et le truc que j'affiche:
CFigure::CFigure(CTexture *texture):theta(0),x(50),y(0),z(-20)
{
this->texture=texture;
listeFigure=glGenLists(8);
float rayon=20, taille=30,angle=PISUR2/2;
short v1[3]={0,taille+rayon,0};
short v2[3]={0,taille,0};
short v3[3]={0,taille,0};
unsigned short i;
// float n[3]={0,0,1};
for(i=0;i<4;i++)
{
glNewList(listeFigure+i,GL_COMPILE);
{
glPushAttrib(GL_CURRENT_BIT);
glColor3f(fabs(cos(angle)),fabs(sin(angle)),0);
glBegin(GL_TRIANGLES);
v2[0]=rayon*cos(angle);
v2[2]=rayon*sin(angle);
angle+=PISUR2;
v3[0]=rayon*cos(angle);
v3[2]=rayon*sin(angle);
glVertex3sv(v1);
glVertex3sv(v2);
glVertex3sv(v3);
glEnd();
glPopAttrib();
}
glEndList();
}
...etc
}
void CFigure::affiche()
{
glPushMatrix();
glTranslatef(x,y,z);
glRotatef(theta,0,1,0);
glCallList(listeFigure);
glCallList(listeFigure+1);
glCallList(listeFigure+2);
glCallList(listeFigure+3);
glCallList(listeFigure+4);
glCallList(listeFigure+5);
glCallList(listeFigure+6);
glCallList(listeFigure+7);
glPopMatrix();
}
-------------------------------
Réponse au message :
-------------------------------

> tu peux mettre ton code, surtout l'initialisation, pour qu'on voit un peu?
>
>
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > J'essaie d'afficher un polygone. Quand je fait tourner le polygone, il disparaît par moment.
> > Si j'aligne le polygone sur les axes et que je le tourne, çà marche bien, mais dès que je le mets en biais, le polygone se transforme en triangle ou disparaît complètement pour certains angles de rotation.
> >
> > Merci pour toute aide.
>
mercredi 9 avril 2003 à 19:02:57 | Re : pb affichage de polygone

payen

c'est peut etre un probleme de masquage des faces avant/faces arriere. essaies en rajoutant ca dans ta fonction d'initialisation:
glDisable(GL_CULL_FACE);
glPolygonMode(GL_FRONT_AND_BACK,GL_FILL);

dis moi si ca marche



-------------------------------
Réponse au message :
-------------------------------

> OK: voici des morceaux du code
> void init()
> {
> char* arPath[]={"texture/wood4.bmp"};
> texture=new CTexture(1,arPath);
> figure0=new CFigure(texture);
> cadre=new CCadre(texture);
>
> glClearColor(0.0,0.0,0.0,0.0);
> }
> void reshape(int w,int h)
> {
> glViewport(0,0,(GLsizei)w,(GLsizei)h);
> glMatrixMode(GL_PROJECTION);
> glLoadIdentity();
> gluPerspective(75,1.33,0,120);
> glMatrixMode(GL_MODELVIEW);
> glLoadIdentity();
> gluLookAt(50,50,25,50,0,-50,0,1,0);
> }
> void main(int argc, char** argv)
> {
> raw_key=0;
> action=action1;
> action();
> //lastKbVect=_dos_getvect(0x09);
> //_dos_setvect(0x09,scannetouches);
> glutInit(&argc,argv);
> glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB| GLUT_DEPTH);
> midscreenx=300;
> glutInitWindowSize(2*midscreenx,500);
> glutInitWindowPosition(1,1);
> //glutFullScreen(); //qui bizarrement ne marche pas
> glutCreateWindow("simple");
> init();
> glutDisplayFunc(display);
> glutReshapeFunc(reshape);
> ShowCursor(FALSE);
> glutMotionFunc(souris);
> glutPassiveMotionFunc(souris);
> glutIdleFunc(anime);
> _beginthread(scannetouches,0,NULL);
> glutMainLoop();
> end();
> }
>
> Et le truc que j'affiche:
> CFigure::CFigure(CTexture *texture):theta(0),x(50),y(0),z(-20)
> {
> this->texture=texture;
> listeFigure=glGenLists(8);
> float rayon=20, taille=30,angle=PISUR2/2;
> short v1[3]={0,taille+rayon,0};
> short v2[3]={0,taille,0};
> short v3[3]={0,taille,0};
> unsigned short i;
> // float n[3]={0,0,1};
> for(i=0;i<4;i++)
> {
> glNewList(listeFigure+i,GL_COMPILE);
> {
> glPushAttrib(GL_CURRENT_BIT);
> glColor3f(fabs(cos(angle)),fabs(sin(angle)),0);
> glBegin(GL_TRIANGLES);
> v2[0]=rayon*cos(angle);
> v2[2]=rayon*sin(angle);
> angle+=PISUR2;
> v3[0]=rayon*cos(angle);
> v3[2]=rayon*sin(angle);
> glVertex3sv(v1);
> glVertex3sv(v2);
> glVertex3sv(v3);
> glEnd();
> glPopAttrib();
> }
> glEndList();
> }
> ...etc
> }
> void CFigure::affiche()
> {
> glPushMatrix();
> glTranslatef(x,y,z);
> glRotatef(theta,0,1,0);
> glCallList(listeFigure);
> glCallList(listeFigure+1);
> glCallList(listeFigure+2);
> glCallList(listeFigure+3);
> glCallList(listeFigure+4);
> glCallList(listeFigure+5);
> glCallList(listeFigure+6);
> glCallList(listeFigure+7);
> glPopMatrix();
> }
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > tu peux mettre ton code, surtout l'initialisation, pour qu'on voit un peu?
> >
> >
> >
> > -------------------------------
> > Réponse au message :
> > -------------------------------
> >
> > > J'essaie d'afficher un polygone. Quand je fait tourner le polygone, il disparaît par moment.
> > > Si j'aligne le polygone sur les axes et que je le tourne, çà marche bien, mais dès que je le mets en biais, le polygone se transforme en triangle ou disparaît complètement pour certains angles de rotation.
> > >
> > > Merci pour toute aide.
> >
>
mercredi 9 avril 2003 à 23:27:22 | Re : pb affichage de polygone

dbtm





-------------------------------
Réponse au message :
-------------------------------

> c'est peut etre un probleme de masquage des faces avant/faces arriere. essaies en rajoutant ca dans ta fonction d'initialisation:
> glDisable(GL_CULL_FACE);
> glPolygonMode(GL_FRONT_AND_BACK,GL_FILL);
>
> dis moi si ca marche
>
>
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > OK: voici des morceaux du code
> > void init()
> > {
> > char* arPath[]={"texture/wood4.bmp"};
> > texture=new CTexture(1,arPath);
> > figure0=new CFigure(texture);
> > cadre=new CCadre(texture);
> >
> > glClearColor(0.0,0.0,0.0,0.0);
> > }
> > void reshape(int w,int h)
> > {
> > glViewport(0,0,(GLsizei)w,(GLsizei)h);
> > glMatrixMode(GL_PROJECTION);
> > glLoadIdentity();
> > gluPerspective(75,1.33,0,120);
> > glMatrixMode(GL_MODELVIEW);
> > glLoadIdentity();
> > gluLookAt(50,50,25,50,0,-50,0,1,0);
> > }
> > void main(int argc, char** argv)
> > {
> > raw_key=0;
> > action=action1;
> > action();
> > //lastKbVect=_dos_getvect(0x09);
> > //_dos_setvect(0x09,scannetouches);
> > glutInit(&argc,argv);
> > glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB| GLUT_DEPTH);
> > midscreenx=300;
> > glutInitWindowSize(2*midscreenx,500);
> > glutInitWindowPosition(1,1);
> > //glutFullScreen(); //qui bizarrement ne marche pas
> > glutCreateWindow("simple");
> > init();
> > glutDisplayFunc(display);
> > glutReshapeFunc(reshape);
> > ShowCursor(FALSE);
> > glutMotionFunc(souris);
> > glutPassiveMotionFunc(souris);
> > glutIdleFunc(anime);
> > _beginthread(scannetouches,0,NULL);
> > glutMainLoop();
> > end();
> > }
> >
> > Et le truc que j'affiche:
> > CFigure::CFigure(CTexture *texture):theta(0),x(50),y(0),z(-20)
> > {
> > this->texture=texture;
> > listeFigure=glGenLists(8);
> > float rayon=20, taille=30,angle=PISUR2/2;
> > short v1[3]={0,taille+rayon,0};
> > short v2[3]={0,taille,0};
> > short v3[3]={0,taille,0};
> > unsigned short i;
> > // float n[3]={0,0,1};
> > for(i=0;i<4;i++)
> > {
> > glNewList(listeFigure+i,GL_COMPILE);
> > {
> > glPushAttrib(GL_CURRENT_BIT);
> > glColor3f(fabs(cos(angle)),fabs(sin(angle)),0);
> > glBegin(GL_TRIANGLES);
> > v2[0]=rayon*cos(angle);
> > v2[2]=rayon*sin(angle);
> > angle+=PISUR2;
> > v3[0]=rayon*cos(angle);
> > v3[2]=rayon*sin(angle);
> > glVertex3sv(v1);
> > glVertex3sv(v2);
> > glVertex3sv(v3);
> > glEnd();
> > glPopAttrib();
> > }
> > glEndList();
> > }
> > ...etc
> > }
> > void CFigure::affiche()
> > {
> > glPushMatrix();
> > glTranslatef(x,y,z);
> > glRotatef(theta,0,1,0);
> > glCallList(listeFigure);
> > glCallList(listeFigure+1);
> > glCallList(listeFigure+2);
> > glCallList(listeFigure+3);
> > glCallList(listeFigure+4);
> > glCallList(listeFigure+5);
> > glCallList(listeFigure+6);
> > glCallList(listeFigure+7);
> > glPopMatrix();
> > }
> > -------------------------------
> > Réponse au message :
> > -------------------------------
> >
> > > tu peux mettre ton code, surtout l'initialisation, pour qu'on voit un peu?
> > >
> > >
> > >
> > > -------------------------------
> > > Réponse au message :
> > > -------------------------------
> > >
> > > > J'essaie d'afficher un polygone. Quand je fait tourner le polygone, il disparaît par moment.
> > > > Si j'aligne le polygone sur les axes et que je le tourne, çà marche bien, mais dès que je le mets en biais, le polygone se transforme en triangle ou disparaît complètement pour certains angles de rotation.
> > > >
> > > > Merci pour toute aide.
> > >
> >
>
mercredi 9 avril 2003 à 23:31:08 | Re : pb affichage de polygone

dbtm


bizarre, mon msg de 19 h 30 n'a pas été enregistré.
Je voulais dire que çà ne marche toujours pas. J'ai essayé des valeurs différentes pour le culling. C'est vrai que le problème semble être un truc de ce genre.
J'ai essayé de comparer avec d'autres prgms sur le net mais je ne trouve vraiment pas.

merci quand même


-------------------------------
Réponse au message :
-------------------------------

>
>
>
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > c'est peut etre un probleme de masquage des faces avant/faces arriere. essaies en rajoutant ca dans ta fonction d'initialisation:
> > glDisable(GL_CULL_FACE);
> > glPolygonMode(GL_FRONT_AND_BACK,GL_FILL);
> >
> > dis moi si ca marche
> >
> >


Cette discussion est classée dans : pb, affichage, disparaît, polygone


Répondre à ce message

Sujets en rapport avec ce message

pb affichage icone [ par oliverman ] Je suis debutant en vc++, et je n'arrive pas a afficher une icone sur une boite de dialogue.Mon icone est dans mes ressources, et le but serait de l'a Pb avec l'affichage dans un dialog [ par marcel6566 ] VC++6 - MFCJ'ai créé une boite à dialogue lié à la class CIMAGE et je voudrais afficher l'image IDB_BITMAP1 dedans.J'ai défini CBitmap image;J'ai rajo Pb d'Affichage [ par c2millet ] Bjrs à tous,Voilà mon Pb: G réalisé une appli sous VC++ 6 sans mfc avec Win2k. Le pb et que les objet que g dans ma fenetre garde la conf de win2k qd pb affichage BITMAP [ par pichu ] Sur certains PC, le bitmap ne s'affiche pas notamment lorsque je fais le code suivant alors que sur d'autres PC cela il s'affiche bien:CBitmap h ;h.Lo [TC++3.0] pb d'affichage de l'heure du systeme!!!!! [ par kobee12 ] J'ai essaye d'afficher l'heure du systeme avec la structure 'dostime_t'. Seulement a chaque fois que j'affiche l'heure il m'ecrit un truc du style : ' Pb affichage BMP en VC++ 6.0 [ par gastoudou ] Bonjour à tous,J'ai un problème d'affichage avec mes BMP. Elles sont complètement explosées quand je les affiche à l'écran...Quelqu'un peut-il me dire SDL pb d'affichage en plein écran avec SDL_HWSURFACE [ par jfleouf ] Bonjour tout le monde,j'ai un petit pb d'affichage dans mon appli SDL.J'utilise la technique de la surface temporaire comme décrit ici : http://jihane affichage sur une nouvelle fenêtre [ par toniii ] salut à tous,je suis nouveau sur le site et surtout trés trés nouveau en programmation(mise à par en Matlab). hors je viens d'entammer une thèse (en v Pb sur "arborescence de dossier" [ par TahitiLove ] Bonjour,J'ai créé un projet MFC. Ce que j'aimerai ce serait de rajouter l'affichage d'une arborescence de dossier dans la fenêtre d'affichage. Chacun pb d'affichage de DATE HEURE (Dev-CPP) [ par phenX ] Pour pouvoir afficher la date dans un fichier texte, je fait: fprintf(fichier,"%d\t\t", time(&H) et j'obtiens, dans le fichier: 1129296004 qui doit b


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,936 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales