By using glutMotionFunc, I can smoothly move camera direction, panning camera. Please refer the following sample code. Since glutMotionFunc is activated only after the first move of mouse, glutMouseFunc( mymouse ) shold be used to get the point you clicked the mouse button.
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)
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿