синтаксическая ошибка с glfloat python? - PullRequest
0 голосов
/ 02 ноября 2010

Я получаю эту ошибку (обратите внимание, код взят из красной книги 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 Ответ

2 голосов
/ 02 ноября 2010

Основные проблемы с синтаксисом Python здесь. Во-первых, в Python вы не объявляете тип переменной (GLfloat). Во-вторых (относится к первому), вам не нужны квадратные скобки после имени переменной ([]), чтобы обозначить, что это массив. И в-третьих, чтобы использовать список в Python (аналог массива), вам необходимо заключить содержимое в квадратные скобки ([]), а не в фигурные скобки ({}). Учитывая все это, оно должно выглядеть так:

mat_specular = [0.8, 0.8, 0.8, 1]

С учетом всего вышесказанного, даже если вам удастся преобразовать код в Python, вам нужно сначала найти библиотеки, которые вы можете использовать из Python. Использование функций с одинаковыми именами волшебным образом не делает работу OpenGL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...