说明
,,,, glViewport决定了将OpengGL渲染的图形,显示在屏幕的什么位置,第一和第二参数决定开始渲染的位置,后两个参数分别为宽和高
代码
# include & lt; gl/glut.h>
空白显示()
{
,glClear (GL_COLOR_BUFFER_BIT);
,glColor3f (1.0, 0.0, 0.0);
,//画分割线,分成四个视见区
,glViewport (0, 0, 400, 400);
,glBegin (GL_LINES);
,glVertex2f (-1.0, 0),
,glVertex2f (1.0, 0),
,glVertex2f (0.0, -1.0);
,glVertex2f (0.0, 1.0);
,glEnd ();
,//定义在左下角的区域
,glColor3f (0.0, 1.0, 0.0);
,glViewport (0, 0, 200, 200);
,glBegin (GL_POLYGON);
,glVertex2f (-0.5, -0.5);
,glVertex2f (-0.5, 0.5);
,glVertex2f (0.5, 0.5);
,glVertex2f (0.5, -0.5);
,glEnd ();
,//定义在右上角的区域
,glColor3f (0.0, 0.0, 1.0);
,glViewport(200、200、200、200);//注意,后面这两个参数是高度和宽度,而不是坐标
,glBegin (GL_POLYGON);
,glVertex2f (-0.5, -0.5);
,glVertex2f (-0.5, 0.5);
,glVertex2f (0.5, 0.5);
,glVertex2f (0.5, -0.5);
,glEnd ();
,//定义在左上角的区域
,glColor3f (1.0, 0.0, 0.0);
,glViewport(0, 200, 200, 200);//注意,后面这两个参数是高度和宽度,而不是坐标
,glBegin (GL_POLYGON);
,glVertex2f (-0.5, -0.5);
,glVertex2f (-0.5, 0.5);
,glVertex2f (0.5, 0.5);
,glVertex2f (0.5, -0.5);
,glEnd ();
,//定义在右下角
,glColor3f (1.0, 1.0, 1.0);
,glViewport(200, 0, 200, 200);//注意,后面这两个参数是高度和宽度,而不是坐标
,glBegin (GL_POLYGON);
,glVertex2f (-0.5, -0.5);
,glVertex2f (-0.5, 0.5);
,glVertex2f (0.5, 0.5);
,glVertex2f (0.5, -0.5);
,glEnd ();
,glFlush ();}
空白init ()
{
,glClearColor (0.0, 0.0, 0.0, 0.0);
,glColor3f (1.0, 1.0, 1.0);
,glMatrixMode (GL_PROJECTION);
,glLoadIdentity ();
,//定义剪裁面
,//gluOrtho2D (-1.0, 1.0, -1.0, 1.0);}
int主要(int命令行参数个数,char * * argv)
{
,glutInit(和命令行参数个数,argv);
,glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
,glutInitWindowPosition (100、100);
,glutInitWindowSize (400、400);
,glutCreateWindow (“glViewport”);
,glutDisplayFunc(显示),
,init ();
,glutMainLoop ();}