在opengl中绘制带粗边的多色三角形
在opengl中可以将这种类型绘制为三角形吗 我已经试过了在opengl中绘制带粗边的多色三角形,opengl,Opengl,在opengl中可以将这种类型绘制为三角形吗 我已经试过了 glBegin(GL_三角形) glBegin(GL\u-LINE\u-LOOP) 使用glBegin(GL\u LINE\u LOOP) 代码: glBegin(GL_LINE_LOOP); glColor3f(0.0f, 1.0f, 1.0f); glVertex2f(-30.0, 30.0); glColor3f(1.0f, 1.0f, 0.0f); glVertex2f(30.0, 30.0); glColor3f(0.5f
glBegin(GL_三角形)代码>
glBegin(GL\u-LINE\u-LOOP)代码>
glBegin(GL\u LINE\u LOOP)
代码:
glBegin(GL_LINE_LOOP);
glColor3f(0.0f, 1.0f, 1.0f);
glVertex2f(-30.0, 30.0);
glColor3f(1.0f, 1.0f, 0.0f);
glVertex2f(30.0, 30.0);
glColor3f(0.5f, 0.0f, 1.0f);
glVertex2f(0.0, -30);
glEnd();
结果:
要删除颜色渐变,您至少有两个选项:
- 您可以调用
glShadeModel(GL\u FLAT)代码>在渲染三角形之前
- 您可以使用
,如下所示:GL\u行
glBegin(GL_LINES); glColor3f(0.0f, 1.0f, 1.0f); glVertex2f(-30.0, 30.0); glVertex2f(30.0, 30.0); glColor3f(1.0f, 1.0f, 0.0f); glVertex2f(30.0, 30.0); glVertex2f(0.0, -30); glColor3f(0.5f, 0.0f, 1.0f); glVertex2f(0.0, -30); glVertex2f(-30.0, 30.0); glEnd();
glLineWidth
但你们会发现,宽线条的末端通常不像你们的图片上那个样漂亮和圆润。如果这对您来说是个问题,您必须使用大量小心放置的
GL\u三角形来绘制形状。我将您的代码更改为:
glLineWidth(5.0);//这会产生5像素厚的线条
glBegin(GL_行);
GL3F(0.0f,1.0f,1.0f);glVertex2f(-30.0,30.0);glVertex2f(30.0,30.0);
GL3F(1.0f,1.0f,0.0f);glVertex2f(30.0,30.0);glVertex2f(0.0,-30.0);
GL3F(0.5f、0.0f、1.0f);glVertex2f(0.0,-30.0);glVertex2f(-30.0,30.0);
格伦德();
glLineWidth(1.0);//将状态恢复到原始状态
所以你应该有粗线条,并且颜色不应该在线条之间插值…角不会这么漂亮,但是如果不是这样,GL\u LINE\u LOOP
应该可以工作。你能用GL\u LINE\u LOOP
向我们展示你的代码和你得到的结果吗?@HolyBlackCat我已经添加了带有结果的代码,现在我如何获得三角形所需的颜色和宽度?嗨,首先,你是用旧的opengl版本编程的。新版本不使用glBegin。我不确定旧版本是否有glLineWidth命令…看起来你打败了我。。。奇怪之前没有看到你的答案。。。现在我正在决定是否删除。。。有什么建议吗?如果您添加glLineWidth(5.0)。。。glLineWidth(1.0)代码>到你的代码我会删除我的。。。