Ошибка pyopenGL OpenGL.error.NullFunctionError: Attempt to call an undefined function glutInit, check for bool(glutInit) before calling

Рейтинг: 0Ответов: 0Опубликовано: 21.05.2023

Есть код, который должен выводить проекции фигуры, но выскакивает ошибка, сколько не гуглить ничего не помогло.

from OpenGL.GL import *
from OpenGL.GLUT import *
from OpenGL.GLU import *

current_projection = 'Z'

def draw_cone():
    # Рисуем конус
    gluCylinder(gluNewQuadric(), 1.0, 0.0, 2.0, 50, 50)

def draw_scene():
    global current_projection

    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)
    glLoadIdentity()

    if current_projection == 'X':
        # Проекция по оси X
        gluLookAt(5.0, 0.0, 0.0,
                  0.0, 0.0, 0.0,
                  0.0, 1.0, 0.0)
        draw_cone()
    elif current_projection == 'Y':
        # Проекция по оси Y
        gluLookAt(0.0, 5.0, 0.0,
                  0.0, 0.0, 0.0,
                  0.0, 0.0, -1.0)
        draw_cone()
    elif current_projection == 'Z':
        # Проекция по оси Z (вид спереди)
        gluLookAt(0.0, 0.0, 5.0,
                  0.0, 0.0, 0.0,
                  0.0, 1.0, 0.0)
        draw_cone()
    elif current_projection == 'GENERAL':
        # Общий вид конуса
        gluLookAt(5.0, 5.0, 5.0,
                  0.0, 0.0, 0.0,
                  0.0, 1.0, 0.0)
        draw_cone()

    glutSwapBuffers()

def keyboard_func(key, x, y):
    global current_projection

    if key == b'x' or key == b'X':
        current_projection = 'X'
    elif key == b'y' or key == b'Y':
        current_projection = 'Y'
    elif key == b'z' or key == b'Z':
        current_projection = 'Z'
    elif key == b'g' or key == b'G':
        current_projection = 'GENERAL'

    glutPostRedisplay()

def main():
    glutInit()
    glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH)
    glutInitWindowSize(800, 600)
    glutCreateWindow(b"3D Cone Projection")

    glEnable(GL_DEPTH_TEST)

    glutDisplayFunc(draw_scene)
    glutKeyboardFunc(keyboard_func)

    glMatrixMode(GL_PROJECTION)
    gluPerspective(45.0, 1.33, 0.1, 100.0)

    glMatrixMode(GL_MODELVIEW)
    glLoadIdentity()

    glutMainLoop()

if __name__ == "__main__":
    main()

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

Ответы

Ответов пока нет.