期望的LP_c_float实例,而不是glVertex3fv中的元组

问题描述 投票:1回答:1

我正在使用Python,OpenGL和Pyglet渲染3D立方体,所以我在一个元组中定义了verticesedges变量

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,-...

python opengl pyglet opengl-compat
1个回答
0
投票

glVertex3fv的参数必须是float s的数组。

© www.soinside.com 2019 - 2024. All rights reserved.