我正在使用Python,OpenGL和Pyglet渲染3D立方体,所以我在一个元组中定义了vertices
和edges
变量
vertices = (
(1, -1, -1),
(1, 1, -1),
(-1, 1, -1),
(-1, -1, -1),
(1, -1, 1),
(1, 1, 1),
(-1, -1, 1),
(-1, 1, 1))
edges = (
(0, 1),
(0, 3),
(0, 4),
(2, 1),
(2, 3),
(2, 7),
(6, 3),
(6, 4),
(6, 7),
(5, 1),
(5, 4),
(5, 7))
此后,我使用上面定义的这些坐标定义了一个函数def Cube()
,该函数创建此3D立方体
def Cube():
glBegin(GL_LINES)
for edge in edges:
for vertex in edge:
glVertex3fv(vertices[vertex])
glEnd()
所以我用on_draw()
函数创建了一个窗口,该窗口调用了Cube()
函数。
[当我使用命令python3 main.py
在Linux终端上运行此应用程序时,出现以下错误
ctypes.ArgumentError:参数1::预期的LP_c_float实例而不是元组
所以我想这段代码的主要错误是glVertex3fv(vertices[vertex])
行>
我想知道我需要正确绘制此3D立方体。
我正在使用Python,OpenGL和Pyglet渲染3D立方体,因此我在元组顶点=((1,-1,-1),(1,1,-1),(-中定义了顶点和边变量1,1,-1),(-1,-1,-1),(1,-...
glVertex3fv
的参数必须是float
s的数组。