请编写一段OpenGL代码,用glBegin()、glColor3f()、 glVertex3f、glEnd()等函数画一个红色的三角形,三角形顶点坐标为(0,0,0)(1,0,0)(0,1,0)
时间: 2023-11-28 22:47:06 浏览: 95
下面是使用OpenGL画红色三角形的代码:
```
#include <GL/glut.h>
void display()
{
glClear(GL_COLOR_BUFFER_BIT);
glBegin(GL_TRIANGLES);
glColor3f(1.0, 0.0, 0.0);
glVertex3f(0.0, 0.0, 0.0);
glVertex3f(1.0, 0.0, 0.0);
glVertex3f(0.0, 1.0, 0.0);
glEnd();
glFlush();
}
int main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);
glutInitWindowSize(400, 400);
glutCreateWindow("Red Triangle");
glutDisplayFunc(display);
glutMainLoop();
return 0;
}
```
运行这段代码会弹出一个窗口,窗口中画了一个红色的三角形。
相关问题
解释一下这段代码glBegin(GL_POLYGON); glColor3f(0.0f, 1.0f, 0.0f); glVertex3f(50.0f, 50.0f, -50.0f);
这段代码使用OpenGL库来绘制一个多边形,并使用glColor3f()函数设置颜色,glVertex3f()函数指定多边形的顶点坐标。具体解释如下:
- glBegin(GL_POLYGON): 开始绘制多边形,参数GL_POLYGON表示绘制一个凸多边形,这个函数必须和glEnd()函数一起使用。
- glColor3f(0.0f, 1.0f, 0.0f): 设置绘制的颜色,这里表示绿色(红色、绿色、蓝色分别对应三个参数)。
- glVertex3f(50.0f, 50.0f, -50.0f): 设置多边形的顶点,这里表示一个顶点坐标为(50,50,-50)的点。由于是绘制多边形,需要在这个函数调用多次来设置不同的顶点坐标。
注意:这段代码需要在OpenGL环境下运行,否则无法正常显示。
glColor3f()函数
glColor3f()函数是在OpenGL中用于设置颜色的函数。它的参数有三个,分别对应红、绿、蓝三个颜色通道的值,取值范围为[0.0,1.0]。例如,glColor3f(1.0,0.0,0.0)表示红色,glColor3f(0.0,1.0,0.0)表示绿色,glColor3f(0.0,0.0,1.0)表示蓝色。在使用glColor3f()函数之后,所有的图形都将使用该颜色进行渲染,直到下一次调用glColor3f()函数改变颜色。
下面是一个简单的例子,演示如何使用glColor3f()函数设置颜色:
```python
from OpenGL.GL import *
from OpenGL.GLUT import *
from OpenGL.GLU import *
def display():
glClear(GL_COLOR_BUFFER_BIT)
glColor3f(1.0, 0.0, 0.0) # 设置颜色为红色
glBegin(GL_POLYGON)
glVertex2f(-0.5, -0.5)
glVertex2f(-0.5, 0.5)
glVertex2f(0.5, 0.5)
glVertex2f(0.5, -0.5)
glEnd()
glFlush()
glutInit()
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB)
glutInitWindowSize(250, 250)
glutInitWindowPosition(100, 100)
glutCreateWindow("OpenGL Window")
glClearColor(1.0, 1.0, 1.0, 0.0)
glMatrixMode(GL_PROJECTION)
glLoadIdentity()
gluOrtho2D(-1.0, 1.0, -1.0, 1.0)
glutDisplayFunc(display)
glutMainLoop()
```
阅读全文