OpenGLの勉強(2)

フォルダ\PyOpenGL-Demo-3.0.1b1\PyOpenGL-Demo\GLE にあるmaintest.pyというモジュールで、マウスの動きや光の当て方を定義している(ようだ)。これをimportして、マウスで物体を回転させることができるようなので、サンプルコードをいじってみる。

cubeをマウスで回転させる。maintestはそのまま使う。こんな感じ。

やはりサンプル豊富なテキストがないと、勉強を続けるのは辛い...。

from OpenGL.GL import *
from OpenGL.GLUT import *
from OpenGL.GLE import *
import maintest

def DrawStuff():
    glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)
    
    gleSetJoinStyle (TUBE_NORM_EDGE | TUBE_JN_ANGLE | TUBE_JN_CAP)
    glPushMatrix ()
    glTranslatef (0.0, 0.0, -80.0)
    glRotatef (maintest.lastx, 0.0, 1.0, 0.0)
    glRotatef (maintest.lasty, 1.0, 0.0, 0.0)
        
    glBegin(GL_QUADS)

    glColor3f(0.0,10.0,0.0)
    glVertex3f( 10.0, 10.0,-10.0)
    glVertex3f(-10.0, 10.0,-10.0)
    glVertex3f(-10.0, 10.0, 10.0)
    glVertex3f( 10.0, 10.0, 10.0)

    glColor3f(1.0,0.5,0.0)
    glVertex3f( 10.0,-10.0, 10.0)
    glVertex3f(-10.0,-10.0, 10.0)
    glVertex3f(-10.0,-10.0,-10.0)
    glVertex3f( 10.0,-10.0,-10.0)

    glColor3f(1.0,0.0,0.0)
    glVertex3f( 10.0, 10.0, 10.0)
    glVertex3f(-10.0, 10.0, 10.0)
    glVertex3f(-10.0,-10.0, 10.0)
    glVertex3f( 10.0,-10.0, 10.0)

    glColor3f(1.0,1.0,0.0)
    glVertex3f( 10.0,-10.0,-10.0)
    glVertex3f(-10.0,-10.0,-10.0)
    glVertex3f(-10.0, 10.0,-10.0)
    glVertex3f( 10.0, 10.0,-10.0)

    glColor3f(0.0,0.0,1.0)
    glVertex3f(-10.0, 10.0, 10.0)
    glVertex3f(-10.0, 10.0,-10.0)
    glVertex3f(-10.0,-10.0,-10.0)
    glVertex3f(-10.0,-10.0, 10.0)

    glColor3f(1.0,0.0,1.0)
    glVertex3f( 10.0, 10.0,-10.0)
    glVertex3f( 10.0, 10.0, 10.0)
    glVertex3f( 10.0,-10.0, 10.0)
    glVertex3f( 10.0,-10.0,-10.0)
    glEnd();

    glPopMatrix ()
    glutSwapBuffers ()

maintest.main(DrawStuff)