Accueil > Forum > > > > pb affichage de polygone
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
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|