Ошибка с PyOpenGL и glutSolidCylinder

Я пытаюсь нарисовать сплошной цилиндр, используя PyOpenGL (вместе с PyODE), однако я столкнулся со следующей ошибкой:

OpenGL.error.NullFunctionError: Attempt to call an undefined function glutSolidCylinder, check for bool(glutSolidCylinder) before calling

У меня есть следующие три импорта, и я использую другие вызовы glut* (glutSolidSphere, glutSolidCube и т. Д.) Без проблем, но этот вызывает у меня проблемы.

from OpenGL.GL import *
from OpenGL.GLU import *
from OpenGL.GLUT import *
...
glutSolidCylinder(RADIUS, LENGTH, SLICES, STACKS)

Я использую Python 2.7, и когда я тестирую с print(bool(glutSolidCylinder)) я получил False,

Я использовал Pip для установки PyOpenGL.

1 ответ

Решение

Исходная реализация GLUT не имеет функций цилиндра, но freeglut делает [ отсюда], (тогда python 2.7.1, pyOpenGL 3.0.1 с freeglut 2.6.0 вместе хорошо работают в моем ноутбуке - linux-ubuntu 12.04).

Тем не менее, вы можете сделать цилиндр также с помощью функций GLU, в python:

quadratic = gluNewQuadric()
gluCylinder(quadratic, BASE, TOP, HEIGHT, SLICES, STACKS)      # to draw the lateral parts of the cylinder;
gluDisk(quadratic, INNER_RADIUS, OUTER_RADIUS, SLICES, LOOPS)  # call this two times in the appropriate environment to draw the top and bottom part of the cylinder with INNER_RADIUS=0.
Другие вопросы по тегам