読者です 読者をやめる 読者になる 読者になる

人工知能に関する断創録

人工知能、認知科学、心理学、ロボティクス、生物学などに興味を持っています。このブログでは人工知能のさまざまな分野について調査したことをまとめています。最近は、機械学習・Deep Learningに関する記事が多いです。



神々のトライフォース

Pygame

某ゲームのあれです。三角形を3つ書いて回転させるだけです。何かなつかしい。

triforce.py
f:id:aidiary:20100814105601p:plain

神々のトライフォース

#!/usr/bin/env python
#coding:utf-8
from OpenGL.GL import *
from OpenGL.GLU import *
from OpenGL.GLUT import *
import sys

angle = 0.0

def main():
    glutInit(sys.argv)
    glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH)
    glutInitWindowSize(300, 300)
    glutInitWindowPosition(100, 100)
    glutCreateWindow("神々のトライフォース")
    init()
    glutDisplayFunc(display)
    glutReshapeFunc(reshape)
    glutIdleFunc(idle)
    glutMainLoop()

def init():
    glClearColor(0.0, 0.0, 0.0, 0.0)
    glEnable(GL_DEPTH_TEST)

def display():
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)
    glColor3f(1.0, 1.0, 1.0)
    glLoadIdentity()
    gluLookAt(0.0, 0.0, 3.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0)
    
    glRotatef(angle, 0.0, 1.0, 0.0)
    draw_triforce()
    
    glutSwapBuffers()

def draw_triforce():
    """トライフォースを描画"""
    glColor3f(1.0, 1.0, 0.0)
    
    glBegin(GL_TRIANGLES)
    # 上の三角形
    glVertex2f(0, 0.8)
    glVertex2f(-0.4, 0.0)
    glVertex2f(0.4, 0.0)
    # 左下の三角形
    glVertex2f(-0.4, 0.0)
    glVertex2f(-0.8, -0.8)
    glVertex2f(0.0, -0.8)
    # 右下の三角形
    glVertex2f(0.4, 0.0)
    glVertex2f(0.0, -0.8)
    glVertex2f(0.8, -0.8)
    glEnd()

def reshape(width, height):
    glViewport(0, 0, width, height)
    glMatrixMode(GL_PROJECTION)
    glLoadIdentity()
    gluPerspective(60.0, width/height, 1.0, 100.0)
    glMatrixMode(GL_MODELVIEW)

def idle():
    global angle
    angle += 0.05
    glutPostRedisplay()

if __name__ == "__main__":
    main()