我正在使用 freeglut 进行 opengl 渲染...
我需要绘制一个看起来像圆锥体 (2D) 的包络,必须填充一些颜色并应用一些透明度。
freeglut 工具包是否配备了绘制填充几何图形的内置功能(或一些技巧)? 或者是否有其他一些 api 对填充的几何图形具有内置支持..
编辑1: 只是为了澄清 2D 锥体的东西……包络是飞机在拦截(敌机)期间覆盖区域的图形解释……类似于圆的一个扇区……我应该提到扇区。 .
而 glutSolidCone 对我没有帮助,因为我想绘制一个圆的填充扇区......我已经完成了......剩下要做的就是用一些颜色填充它...... 如何在 opengl 中用颜色填充几何图形?
编辑2: 发布到这个问题的所有答案都可以在某种程度上解决我的问题.. 但我肯定想知道如何用某种颜色填充几何图形的方法。 假设我想绘制一个抛物线包络线……在那种情况下,将没有默认的 glut 函数来实际绘制一个填充的抛物线(或者是否有任何抛物线?).. 所以要概括这个问题...如何以某种纯色绘制自定义几何图形?
编辑 3: mstrobl 发布的答案适用于 GL_TRIANGLES 但适用于这样的代码:
glBegin(GL_LINE_STRIP);
glColor3f(0.0, 0.0, 1.0);
glVertex3f(0.0, 0.0, 0.0);
glColor3f(0.0, 0.0, 1.0);
glVertex3f(200.0, 0.0, 0.0);
glColor3f(0.0, 0.0, 1.0);
glVertex3f(200.0, 200.0, 0.0);
glColor3f(0.0, 0.0, 1.0);
glVertex3f(0.0, 200.0, 0.0);
glColor3f(0.0, 0.0, 1.0);
glVertex3f(0.0, 0.0, 0.0);
glEnd();
它绘制了一个正方形...只绘制了一个连线正方形...我需要用蓝色填充它。
无论如何都要这样做?
如果我为闭合曲线放置了一些绘图命令..就像一个馅饼..我需要用一种颜色填充它有没有办法让它成为可能...
我不知道 GL_TRIANGLES 是如何实现的...但是对于任何闭合曲线如何做到这一点?
最佳答案
在 Edit3 上:我理解你的问题的方式是你想让 OpenGL 绘制边框,并且它们之间的任何东西都应该用颜色填充。
你的想法是对的,但线带就是一条线,它没有任何面积。
但是,您可以让这些线相互连接以定义一个多边形。这将在每个顶点的基础上填充多边形的区域。调整您的代码:
glBegin(GL_POLYGON);
glColor3f(0.0, 0.0, 1.0);
glVertex3f(0.0, 0.0, 0.0);
glColor3f(0.0, 0.0, 1.0);
glVertex3f(200.0, 0.0, 0.0);
glColor3f(0.0, 0.0, 1.0);
glVertex3f(200.0, 200.0, 0.0);
glColor3f(0.0, 0.0, 1.0);
glVertex3f(0.0, 200.0, 0.0);
glColor3f(0.0, 0.0, 1.0);
glVertex3f(0.0, 0.0, 0.0);
glEnd();
但是请注意,以这种方式绘制多边形有两个限制:
- 多边形必须是凸的。
- 这是一个缓慢的操作。
但我假设您只是想完成工作,这就可以了。对于 future ,您可能会考虑只对多边形进行三角测量。
关于c++ - 如何在 OpenGL(使用 GLUT)上绘制像圆锥体一样的填充包络?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/237899/