Affichage de quadrilatères et polygones
Ce programme affiche une liste de quadrilatères en géométrie bidimensionnelle. Il est possible de modifier la position/couleur des vertices, le type de quadrilatères, ainsi que le modèle d’interpolation des couleurs.
Fichier : demoGLUT/demo3.cpp #include "demo.h"
/*********************************************************************
* AUTOGENERATED CODE
*********************************************************************/
#include "quads.hpp"
/*********************************************************************
* GUI DESIGN
*********************************************************************/
SCENE(Scene,quadsDisplay,NULL);
CONTROL(Control,quadsLines);
SPLIT(Split,1,0.5,&Control,&Scene);
/*********************************************************************
* MAIN PROGRAM
*********************************************************************/
int main(int argc,char *argv[]){
int a=800,b=600,x,y;
glutInit(&argc,argv);
x=glutGet(GLUT_SCREEN_WIDTH);
y=glutGet(GLUT_SCREEN_HEIGHT);
glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE | GLUT_MULTISAMPLE);
glutInitWindowPosition((x-a)/2,(y-b)/2);
glutInitWindowSize(a,b);
createWindow(&Split,"OpenGL demo");
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);
glutMainLoop();
return 0;
} Pour information: Fichier : demoGLUT/quads.txt int i;
float Vertex[8][2]={
{#f-1:+0.0:1#,#f-1:+0.0:1#},
{#f-1:-0.5:1#,#f-1:+0.5:1#},
{#f-1:+0.0:1#,#f-1:+0.9:1#},
{#f-1:+0.5:1#,#f-1:+0.4:1#},
{#f-1:+0.9:1#,#f-1:+0.1:1#},
{#f-1:+0.7:1#,#f-1:-0.8:1#},
{#f-1:+0.3:1#,#f-1:-0.8:1#},
{#f-1:-0.7:1#,#f-1:-0.3:1#},
};
float Color[8][3]={
{#f0:0:1#,#f0:0:1#,#f0:1:1#},
{#f0:0:1#,#f0:1:1#,#f0:0:1#},
{#f0:1:1#,#f0:0:1#,#f0:0:1#},
{#f0:1:1#,#f0:1:1#,#f0:0:1#},
{#f0:1:1#,#f0:0:1#,#f0:1:1#},
{#f0:0:1#,#f0:1:1#,#f0:1:1#},
{#f0:1:1#,#f0:1:1#,#f0:1:1#},
{#f0:0.5:1#,#f0:0.5:1#,#f0:0.5:1#}
};
glClear(GL_COLOR_BUFFER_BIT);
glShadeModel(#eGL_SMOOTH:GL_FLAT#);
if (#e0:1#)
glEnable(GL_POLYGON_SMOOTH);
else
glDisable(GL_POLYGON_SMOOTH);
glBegin(#eGL_QUADS:GL_QUAD_STRIP:GL_POLYGON#);
for (i=0;i<8;i++){
glColor3fv(Color[i]);
glVertex2fv(Vertex[i]);
}
glEnd();
glFlush();
glutSwapBuffers(); Ce document a été traduit de LaTeX par HeVeA |