OpenGL多邊形的繪製(多個三角形連接)

上一篇博客介紹怎麼畫三角形,這篇文章介紹怎麼樣畫連續的三角形。使用圖元GL_TRIANGLE_STRIP可以繪製連續的三角形。廢話不多說了,直接上代碼了。

#include <GL/glut.h>

void RenderScene(void)
{

	glClear(GL_COLOR_BUFFER_BIT); //清除顏色


		glBegin(GL_TRIANGLE_STRIP);     //劃線
		    glVertex2f(100.0f,0.0f);
			glVertex2f(50.0f,100.0f);
			glVertex2f(0.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;
}

直接上截圖了:

 

以上這個圖形就是用兩個三角形拼接起來的。

睡覺未完待續......

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章