Ошибка с 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.