Форум программистов, компьютерный форум, киберфорум
Python: GUI, графика
Войти
Регистрация
Восстановить пароль
 
1 / 1 / 0
Регистрация: 10.11.2011
Сообщений: 83
1

OpenGL в Python

17.03.2012, 13:33. Просмотров 2509. Ответов 0
Метки нет (Все метки)

Всем доброго времени суток. Проблема. Не могу сделать так, чтобы этот кубик при нажатии клавиш вращался в нужную сторону. Вращает его ф-ция glRotatef(rot,1.0,0.0,0.0), где rot - необходимый угол, а остальные 3 числа - оси вращения. Как правильно организовать ф-цию создания событий для изменения углов?

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
from OpenGL.GL import *
from OpenGL.GLU import *
from OpenGL.GLUT import *
import sys
 
x1 = y1 = z1 = 0
 
def InitGL(Width, Height):
    glClearColor(0.0, 0.0, 0.0, 0.0)
    glClearDepth(1.0)
    glDepthFunc(GL_LESS)
    glEnable(GL_DEPTH_TEST)
    glEnable(GL_LIGHTING)
    glEnable(GL_LIGHT0)
    glEnable(GL_COLOR_MATERIAL)
    glMatrixMode(GL_PROJECTION)
    glLoadIdentity()
    gluPerspective(45.0, float(Width)/float(Height), 0.1, 1000.0)
    glMatrixMode(GL_MODELVIEW)
 
 
def ReSizeGLScene(Width, Height):
    if Height == 0: Height = 1
    glViewport(0, 0, Width, Height)
    glMatrixMode(GL_PROJECTION)
    glLoadIdentity()
    gluPerspective(45.0, float(Width)/float(Height), 0.1, 100.0)
    glMatrixMode(GL_MODELVIEW)
 
 
def DrawGLScene():
    global x1, y1, z1
    x1  = (x1 + 0.01) % 360
    y1  = (y1 + 0.01) % 360
    z1  = (z1 + 0.01) % 360
    
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)
    glLoadIdentity()
 
    glTranslatef(0.0,0.0,-10.0)
    
    glRotatef(x1,1.0,0.0,0.0)
    glRotatef(y1,0.0,1.0,0.0)
    glRotatef(z1,0.0,0.0,1.0)
    glColor4f(0.0,0.7,0.1,1)
    glutSolidCube(3)
 
    glutSwapBuffers()
 
 
def KeyPressed(*args):
    if args[0]=="\033": sys.exit()
 
 
def main():
    glutInit(sys.argv)
    glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE | GLUT_ALPHA | GLUT_DEPTH)
    glutInitWindowSize(400, 300)
    glutInitWindowPosition(0, 0)
    glutCreateWindow("OpenGL demo")
    glutDisplayFunc(DrawGLScene)
    glutIdleFunc(DrawGLScene)
    glutReshapeFunc(ReSizeGLScene)
    glutKeyboardFunc(KeyPressed)
    InitGL(400, 300)
    glutMainLoop()
 
main()
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.03.2012, 13:33
Ответы с готовыми решениями:

Поведение функции отрисовки show() внутри цикла. Python/OpenGL. Создание анимации
Добрый день! Имеется объект графического интерфейса ui. Столкнулась с проблемой, что вне...

Perl + OpenGL Как избавиться от повторного подключения библиотеки OpenGL в модулях
Доброго времени суток! Сегодня решил заняться программированием на языке Perl, используя...

Какая значительная разница между OpenGL ES 2.0 и OpenGL 3.3 при использовании в Qt
Привет всем! У меня видеокарта имеет поддержку 3.1 версию OpenGL, обновить хочу её с помощью...

Чем отличаются готовые сборки Qt под Win + MSVC с OpenGL и без OpenGL?
Ну вопрос собственно в том, что мне не очень понятно, что же в сборке кьюте без опен джел имеется...

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.03.2012, 13:33

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

OpenGL Ваша текущая конфигурация рабочего стола не поддерживает OpenGL Аппаратное ускорение.
всем здрасте ) скачал opengl extensions viewer решил проверить драйверы на видео карту.В...

Создаю игру с научным уколоном на C++/opengl. Как подключить openGL и добиться кроссплатформенности
Я читал про opengl - для его инициализации нужно создавать windows - окно. Для linux видимо...

(2 главы перевода книги доступно) OpenGL Programming Guide, Version 4.3, 8th Edition - OpenGL
Продолжая тему с переводом книги https://www.cyberforum.ru/opengl/thread1551398.html Выкладываю...

Ошибки при подключение opengl, немного не связанные с opengl
#include <windows.h> #include "stdafx.h" #include <gl/gl.h> #include <gl/glu.h> #include...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.