Chinaunix首页 | 论坛 | 博客
  • 博客访问: 63155
  • 博文数量: 7
  • 博客积分: 291
  • 博客等级: 二等列兵
  • 技术积分: 50
  • 用 户 组: 普通用户
  • 注册时间: 2010-06-23 21:22
文章分类

全部博文(7)

文章存档

2014年(2)

2011年(5)

分类: Delphi

2011-07-22 22:56:14

#include

//不显示控制台窗口
#pragma comment( linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"")

void display()
{
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();
}

void 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 main( int argc, char ** argv )
{
glutInit( &argc, argv );
glutInitDisplayMode( GLUT_SINGLE | GLUT_RGB );
glutInitWindowPosition( 100, 100 );
glutInitWindowSize( 400, 400 );
glutCreateWindow( "蒋昌松_使用glbegin_glend_glViewport" );
glutDisplayFunc( display );
init();
glutMainLoop();
}

http://jiangcs2010.blog.sohu.com/165071219.html

阅读(10544) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~