OpenGL多边形的绘制(三角形)

画个三角形吧,OpenGL中最简单的多边形。

今天就使用GL_TRIANGLES图元绘制三角形。

直接上代码了:

#include 

void RenderScene(void)
{

	glClear(GL_COLOR_BUFFER_BIT); //清除颜色


		glBegin(GL_TRIANGLES);     //划线
		    glVertex2f(0.0f,0.0f);
			glVertex2f(100.0f,0.0f);
			glVertex2f(50.0f,100.0f);
		glEnd();


	glFlush();                    //刷新
}

//当窗口大小变化时调用
void ChangeSize(GLsizei w,GLsizei h)
{
	GLfloat aspectRatio;
	if(0 == h)
		h = 1;

	//设置视口大小
	glViewport(0,0,w,h);

	//重置坐标系
	glMatrixMode(GL_PROJECTION);
	glLoadIdentity();

	//建立裁剪区
	aspectRatio = (GLfloat)w / (GLfloat)h;
	if(w <= h)
		glOrtho(-100.0,100.0,-100.0/aspectRatio,100/aspectRatio,1.0,-1.0);
	else
		glOrtho(-100.0*aspectRatio,100.0*aspectRatio,-100.0,100.0,1.0,-1.0);
	glMatrixMode(GL_MODELVIEW);
	glLoadIdentity();

}

//设置渲染
void SetupRC(void)        
{
	glClearColor(0.0f,0.0f,1.0f,1.0f);
}

int main(int argc,char* argv[])
{
	glutInit(&argc,argv);
	glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
	glutCreateWindow("OpenGL Sample9");
	glutDisplayFunc(RenderScene);
	glutReshapeFunc(ChangeSize);
	SetupRC();
	glutMainLoop();
	return 0;
}

很简单的一个程序。只要三个点就可以绘制出一个三角形了。

这里有一个重要的概念就是三角形的正面和背面。根据三角形顶点的连接顺序,可以确定三角形的正面和背面。默认情况下OpenGL认为逆时针环绕的方向为多边形的正面。如果想改变这种默认行为,可以使用函数glFrontFace(GL_CW)。如果想重新启用默认行为,可以使用GL_CCW。

以下是程序的运行截图:

未完待续......

你可能感兴趣的:(OpenGL)