glVertex2f(R * cos(2 * Pi / n * i), R * sin(2 * Pi / n * i))
时间: 2023-12-03 18:04:11 浏览: 26
这是OpenGL中的函数,用于在二维平面上绘制点。其中,glVertex2f()函数用于指定点的坐标,R表示半径,theta表示角度,n表示点的数量,i表示当前点的索引。具体来说,这个函数的作用是在以原点为中心,半径为R的圆上,均匀地绘制n个点,每个点之间的夹角为360度/n。而cos()和sin()函数则用于计算每个点的坐标值。最后,glutSwapBuffers()函数用于刷新双缓冲区,使绘制的图形显示在屏幕上。
下面是一个完整的OpenGL程序,用于绘制一个以原点为中心,半径为0.5的圆:
```python
from OpenGL.GL import *
from OpenGL.GLUT import *
from OpenGL.GLU import *
def init():
glClearColor(0.0, 0.0, 0.0, 0.0)
glMatrixMode(GL_PROJECTION)
gluOrtho2D(-1.0, 1.0, -1.0, 1.0)
def drawCircle():
R = 0.5
n = 50
theta = 0.0
glBegin(GL_POINTS)
for i in range(n):
glVertex2f(R * cos(2 * Pi / n * i), R * sin(2 * Pi / n * i))
glEnd()
glutSwapBuffers()
def myidle():
global theta
theta += 1.0
if (theta >= 2 * Pi):
theta -= 2 * Pi
glutPostRedisplay()
glutInit()
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB)
glutInitWindowSize(500, 500)
glutInitWindowPosition(100, 100)
glutCreateWindow("Circle")
init()
glutDisplayFunc(drawCircle)
glutIdleFunc(myidle)
glutMainLoop()
```