0

我正在尝试使用 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。

4

1 回答 1

1

最初的 GLUT 实现没有圆柱体功能,但 freeglut 有(source),(然后,Python 2.7.1、PyOpenGL 3.0.1 和 FreeGLUT 2.6.0 在 Ubuntu 12.04 上运行良好)。

但是,您也可以在 Python 中使用 GLU 函数制作圆柱体:

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.
于 2013-09-10T21:44:45.817 回答