【发布时间】:2021-08-28 08:19:25
【问题描述】:
我正在尝试在 python 中运行这段代码,我已经有了 PyOpenGL 库和 pygame 库。这是一个显示中间轴定理的模拟。
#!/usr/bin/env python
# Intermediate Axis Theorem Simulator
# Author: Franco Barpp Gomes (https://github.com/Hyodar)
# -*- coding: utf-8 -*-
# Imported modules
# ----------------------------------------------------------------------------
import pygame.locals as pygl
import pygame
from OpenGL.GL import *
from OpenGL.GLU import *
from OpenGL.GLUT import *
from utils.constants import WINDOW_SIZE
from utils.constants import NUM_FRAMES
from utils.classes.Screen import Screen
from utils.classes.World import World
from utils.classes.Tbar import Tbar
# ----------------------------------------------------------------------------
# Main
# ----------------------------------------------------------------------------
def main():
print('[*] Creating pygame display...')
pygame.init()
display = pygame.display.set_mode(WINDOW_SIZE, pygl.DOUBLEBUF | pygl.OPENGL)
world = World()
tbar = Tbar()
world.add_object(tbar)
screen = Screen(display=display, tbar=tbar)
print('[*] Initializing scene...')
world.init_scene()
frame = 0
paused = False
print('[*] Starting pygame loop...')
while frame < NUM_FRAMES:
for event in pygame.event.get():
if event.type == pygame.QUIT:
print('[*] Quit event detected. Stopping pygame...')
pygame.quit()
exit(0)
elif event.type == pygame.KEYUP:
if event.key == pygame.K_SPACE:
paused = not paused
if paused:
screen.show_paused_message()
if not paused:
world.clear()
world.render()
screen.render()
frame += 1
pygame.display.flip()
pygame.time.wait(10)
print('[*] Simulation finished successfully')
if __name__ == '__main__':
main()
但是,现在我得到了这个错误,
[*] Creating pygame display...
[*] Initializing scene...
2020-08-13 20:41:59.869 python3[22970:759075] GLUT Warning: glutInit being called a second time.
[*] Starting pygame loop...
Traceback (most recent call last):
File "src/main.py", line 76, in <module>
main()
File "src/main.py", line 64, in main
world.render()
File "/Users/silviaar/python_projects/intermediate-axis-theorem-master/src/utils/classes/World.py", line 71, in render
obj.render()
File "/Users/silviaar/python_projects/intermediate-axis-theorem-master/src/utils/classes/Tbar.py", line 86, in render
self.handle.render(self.cm, self.handle_relpos)
File "/Users/silviaar/python_projects/intermediate-axis-theorem-master/src/utils/classes/Cylinder.py", line 56, in render
glutWireCylinder(self.radius, self.height, self.slices, self.stacks)
File "/Users/silviaar/anaconda3/lib/python3.6/site-packages/OpenGL/platform/baseplatform.py", line 407, in __call__
self.__name__, self.__name__,
OpenGL.error.NullFunctionError: Attempt to call an undefined function glutWireCylinder, check for bool(glutWireCylinder) before calli
ng
不知道怎么了 你能帮帮我吗?
【问题讨论】: