
glutMotionFuncを使って、マウスのボタンを押しながらマウスを動かすことによって、スムースにカメラの方向を変えられるようになりました。OpenGLの入門書を読んでも今ひとつはっきりしないのですが、下のようにやれば簡単です。glutMotionFuncはマウスを動かした後の座標しかレポートしませんので、マウスボタンを押した時の座標はglutMouseFunc( mymouse ) から取得しなければなりません。
gx=gy=0
def mymouse(button, state, x, y):
global gx, gy
y = window_size[1] - y
gx = x
gy = y
def mymotion(x, y):
global gx, gy
y = window_size[1] - y
dx = x - gx
dy = y - gy
# calculation of global vars used in glutDisplayFunc( display )
glutPostRedisplay()
gx = x
gy = y
glutDisplayFunc( display )
glutMouseFunc( mymouse )
glutMotionFunc( mymotion)
0 件のコメント:
コメントを投稿