OpenGL入门02.使用OpenGL绘制三角形多边形
Posted stq_wyy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OpenGL入门02.使用OpenGL绘制三角形多边形相关的知识,希望对你有一定的参考价值。
上一篇文章里,我们通过OpenGL绘制了一个点,这篇文章我们绘制三角形和多边形来学习OpenGL中的API。代码变动不大。这里只贴出不一样的地方。
首先画线,这里有三个相关的参数,GL_LINES,GL_LINE_LOOP,GL_LINE_STRIP。
glBegin(GL_LINES);
//glBegin(GL_LINE_LOOP);
//glBegin(GL_LINE_STRIP);
glColor4ub(255, 0, 0, 255);
glVertex3f(0.0f, 0.0f, -10.0f);
glColor4ub(0, 255, 0, 255);
glVertex3f(-5.0f, 0.0f, -10.0f);
glColor4ub(0, 0, 255, 255);
glVertex3f(-5.0f, -3.0f, -10.0f);
效果
//开始绘制
//glBegin(GL_LINES);
glBegin(GL_LINE_LOOP);
//glBegin(GL_LINE_STRIP);
glColor4ub(255, 0, 0, 255);
glVertex3f(0.0f, 0.0f, -10.0f);
glColor4ub(0, 255, 0, 255);
glVertex3f(-5.0f, 0.0f, -10.0f);
glColor4ub(0, 0, 255, 255);
glVertex3f(-5.0f, -3.0f, -10.0f);
效果:
//开始绘制
//glBegin(GL_LINES);
//glBegin(GL_LINE_LOOP);
glBegin(GL_LINE_STRIP);
glColor4ub(255, 0, 0, 255);
glVertex3f(0.0f, 0.0f, -10.0f);
glColor4ub(0, 255, 0, 255);
glVertex3f(-5.0f, 0.0f, -10.0f);
glColor4ub(0, 0, 255, 255);
glVertex3f(-5.0f, -3.0f, -10.0f);
效果:
可以看出,GL_LINES是只画一条线,GL_LINE_LOOP会把三个点用线连起来,GL_LINE_STRIP画两条线。
接下来,绘制三角形。
glBegin(GL_TRIANGLES);
glColor4ub(255, 0, 0, 255);
glVertex3f(0.0f, 3.0f, -10.0f);
glColor4ub(0, 255, 0, 255);
glVertex3f(-3.0f, -2.0f, -10.0f);
glColor4ub(0, 0, 255, 255);
glVertex3f(3.0f, -2.0f, -10.0f);
在glBegin里参数传入GL_TRIANGLES即可。效果如下:
四边形的绘制类似,参数变为GL_QUADS.
glBegin(GL_QUADS);
glColor4ub(255, 0, 0, 255);
glVertex3f(-3.0f, 3.0f, -10.0f);
glColor4ub(0, 255, 0, 255);
glVertex3f(-3.0f, -3.0f, -10.0f);
glColor4ub(0, 0, 255, 255);
glVertex3f(3.0f, -3.0f, -10.0f);
glColor4ub(0, 0, 0, 255);
glVertex3f(3.0f, 3.0f, -10.0f);
四边形需要4个点,效果如下:
关于颜色填充,点与点之间的颜色时是插值求出来的。
最后再来展示一下圆点,在UpdateWindow下边加入如下代码
glPointSize(20.0f);
glPolygonMode(GL_FRONT, GL_POINT);
glEnable(GL_POINT_SMOOTH);
运行,就得到了4个圆形的点。
好了,这篇文章就介绍到这里。
以上是关于OpenGL入门02.使用OpenGL绘制三角形多边形的主要内容,如果未能解决你的问题,请参考以下文章