Как вращать изображение по трём осям координат в питоне?

необходимо заставить изображение вращаться по 3-м осям, в подскажите как это сделать. Изначально хотел наложить изображение на данный квадрат и затем с помощью функции Rotate повернуть его. Подскажите пожалуйста как это сделать или дайте ссылку на подходящий материал, сам его, к сожалению, я не нашёл.

import pygame
from pygame.locals import *

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

verticies = (
    (1, -1, -1),
    (-1, -1, -1),
    (1, -1, 1),
    (-1, -1, 1)
)

surfaces = ((2, 0, 1, 3))

normals = [(0, 1, 0)]

colors = (
    (0, 255, 255),
    (0, 255, 255),
    (0, 255, 255),
    (0, 255, 255)
)

edges = (
    (0, 1),
    (0, 3),
    (2, 1),
    (2, 3)
)

pygame.init()
display = (800, 600)
pygame.display.set_mode(display, DOUBLEBUF | OPENGL)
clock = pygame.time.Clock()

glMatrixMode(GL_PROJECTION)
gluPerspective(45, (display[0] / display[1]), 0.1, 50.0)

glMatrixMode(GL_MODELVIEW)
glTranslatef(0, 0, -5)

glLight(GL_LIGHT0, GL_POSITION, (5, 5, 5, 1))  # point light from the left, top, front
glLightfv(GL_LIGHT0, GL_AMBIENT, (0, 0, 0, 1))
glLightfv(GL_LIGHT0, GL_DIFFUSE, (1, 1, 1, 1))

glEnable(GL_DEPTH_TEST)

#image = pygame.image.load('image.png').convert_alpha()

while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            quit()

    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)

    glEnable(GL_LIGHTING)
    glEnable(GL_LIGHT0)
    glEnable(GL_COLOR_MATERIAL)
    glColorMaterial(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE)

    #glRotatef(1, 1, 0, 0)

    glBegin(GL_QUADS)
    for i_surface, surface in enumerate(surfaces):
        glNormal3fv(normals[i_surface])
        for vertex in surface:
            glVertex3fv(verticies[vertex])
    glEnd()

    glDisable(GL_LIGHT0)
    glDisable(GL_LIGHTING)
    glDisable(GL_COLOR_MATERIAL)

    pygame.display.flip()
    clock.tick(60) 

Ответы (0 шт):