最近在做OpenGL的一个作业,碰到了些问题,想求教下高手给点帮助,作业中一部分的要求具体如下:按住鼠标左键,在OpenGL创建的窗体里向上移动,窗体里的场景会放大(Zoom in),也就是更靠近场景中的物体,当左键抬起时停止;相反,如果按住鼠标左键,向下移动,则窗体里场景会缩小(Zoom out),也就是远离所观察到物体,然后当左键抬起时停止。 另外要求是用C来实现上述的功能的,希望最好能给点相应的代码片段,解释下实现该功能的过程,先多谢大家了
调试欢乐多
void
mouse( int button, int state, int x, int y)中对点进行处理!当然,要保存点下去的点!
display(void)与glutDisplayFunc( display );
{ switch(button)
{
case GLUT_LEFT_BUTTON:
if (state==GLUT_DOWN)
glutIdleFunc(idle1);
break;
case GLUT_LEFT_BUTTON:
if (state==GLUT_UP)
glutIdleFunc(idle2);
break;
default :break;
}
}void idle1(void)
{ spin=spin+0.25;
glutPostRedisplay();}同理写idle2 spin-=0.25;在绘图函数里加入glTranslatef(0.0,0.0,spin);
不会给我留言 我给你说
GLUT的东西我没用过,如果是win32的话,建议先捕捉MOUSE的消息,创建全局量,然后应用glScalef()即可完成简单的。
LZ去看看glut的文档,大概会用的函数就是那个影响mouse的函数吧