PyOpenGL はじめました:glutBitmapCharacter
PyOpenGL はじめました《記事一覧》
glutBitmapCharacter
《著》小粒ちゃん《監修》小泉ひよ子とタマゴ倶楽部
第0版♪2006/09/21 ● 第1版♪2009/04/07
■ 概要
glutBitmapCharacter:ビットマップ文字を表示します。
■ 関連記事
GLUT | API:英 | API:和 | Description |
---|---|---|---|
glutBitmapCharacter | 10.1 glutBitmapCharacter | 10.1 glutBitmapCharacter | renders a bitmap character using OpenGL. |
概要:glutBitmapCharacter
$ python2.5 -i glutBitmapCharacter.py
['glutDisplayFunc.py']
>>> print glutBitmapCharacter.__doc__
glutBitmapCharacter( c_void_p(font), c_int(character) ) -> None
》作業中です《
イベント Display に呼応してウィンドウ内を再描画する、イベントハンドラー handler が必要です。これは、引数を持たず、値を返さない(None をリターン値とする)関数です。すると、ウィンドウを開いたり、背後に隠れていたウィンドウ(その一部)が前面に現れるときに、イベントハンドラー関数を呼び出します。
def ex_glutDisplayFunc(mode, display): glutInit(argv) glutInitDisplayMode(mode) glutInitWindowPosition(100, 100) glutInitWindowSize(200, 100) glutCreateWindow(title()) glutDisplayFunc(display) glutKeyboardFunc(keyPressed) glutMainLoop()
以下の事例では、この関数を再利用しています。
事例:背景を塗り潰す
$ python2.5 glutDisplayFunc.py -s1
def ex_1(): ex_glutDisplayFunc(GLUT_RGB, display1) def display1(): glClearColor(1.0, 1.0, 0.0, 0.0) # 背景を塗り潰す:黄色 glClear(GL_COLOR_BUFFER_BIT) glFinish()
事例:図形を描く
$ python2.5 glutDisplayFunc.py -s2
def ex_2(): ex_glutDisplayFunc(GLUT_RGB, display_2) def display_2(): glClear(GL_COLOR_BUFFER_BIT) glBegin(GL_LINE_LOOP); # 折れ線を閉じる glColor3d (0.0, 1,0, 0,0) glVertex2d(-0.5, -0.5) glVertex2d( 0.5, -0.5) glVertex2d( 0.5, 0.5) glVertex2d(-0.5, 0.5) glEnd() glFinish()
事例:グラデーションを描く
$ python2.5 glutDisplayFunc.py -s3
def ex_3(): ex_glutDisplayFunc(GLUT_RGB, display_3) def display_3(): glClear(GL_COLOR_BUFFER_BIT) glBegin(GL_POLYGON) # 多角形を描く glColor3d(1.0, 0.0, 0.0) glVertex3d( 0.0, 0.8, 0.0) glColor3d(1.0, 1.0, 0.0) glVertex3d(-0.69282, 0.4, 0.0) glColor3d(0.0, 1.0, 0.0) glVertex3d(-0.69282, -0.4, 0.0) glColor3d(0.0, 1.0, 1.0) glVertex3d( 0.0, -0.8, 0.0) glColor3d(0.0, 0.0, 1.0) glVertex3d( 0.69282, -0.4, 0.0) glColor3d(1.0, 0.0, 1.0) glVertex3d( 0.69282, 0.4, 0.0) glEnd() glFinish()
misc
from OpenGL.GL import * from OpenGL.GLUT import * from sys import argv def title(): global EX return sys.argv[0][:-3]+" #"+EX def keyPressed(*args): print args if args[0] == '\x1b': # escape exit() def ex_(): print argv EX = "" if __name__ == '__main__': for e in argv: if e.startswith("-s"): EX = e[2:] eval("ex_%s()"%EX)
Tips
Last updated♪09/04/21