glfloat python的语法错误?

时间:2010-11-02 17:49:35

标签: python opengl

我收到此错误(请注意代码来自openGL红皮书:

GLfloat mat_specular[] = { 0.8, 0.8, 0.8, 1.0 };
                   ^

SyntaxError:语法无效

对于下面的代码,我知道我需要导入一些使用GLfloat的东西,你能不能告诉我在python中我需要导入什么呢。

    GLfloat mat_specular[] = { 0.8, 0.8, 0.8, 1.0 };
    GLfloat mat_shininess[] = { 32.0 };
    GLfloat light_position[] = { 1.0, 1.0, 1.0, 0.0 };

    glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specular);
    glMaterialfv(GL_FRONT, GL_SHININESS, mat_shininess);
    glLightfv(GL_LIGHT0, GL_POSITION, light_position);

    glEnable(GL_LIGHTING);
    glEnable(GL_LIGHT0);
    glDepthFunc(GL_LEQUAL);
    glEnable(GL_DEPTH_TEST)

1 个答案:

答案 0 :(得分:2)

这里的基本Python语法问题。首先,在Python中,您不声明变量类型(GLfloat)。第二个(与第一个相关),您不需要在变量名称([])之后使用方括号来表示它是一个数组。第三,要在Python中使用列表(类似于数组),您需要将内容包装在方括号([])中,而不是大括号({})。考虑到所有这些,它应该看起来像:

mat_specular = [0.8, 0.8, 0.8, 1]

所有这一切,即使您设法将代码转换为Python,您也需要首先找到可以从Python中使用的库。使用具有相同名称的函数并不能让OpenGL正常工作。