交互设备的输入主要由GLUT库实现
鼠标响应函数
鼠标橡皮筋技术
技术关键:
控制图形随着鼠标移动不断变化(擦除原图生成新图)
实现方法:
1.绘制同样线段并与原图异或(颜色异或)
2.双缓存技术,绘制图形到两个缓存,交替显示
MousePlot
glutMouseFunc(MousePlot)
MousePlot(GLint button,GLint action,GLint xMouse,GLint yMouse)
button: GLUT_LEFT_BUTTON 鼠标左键
GLUT_MIDDLE_BUTTON 滚轮
GLUT_RIGHT_BUTTON 右键
action:GLUT_DOWN 按下
GLUT_UP 松开
xMouse,yMouse:鼠标在窗口相对于左上角位置
MoseMove
glutMotionFunc(MouseMove)
一个或多个鼠标按键按下移动
glutPassiveMouseMove(PassiveMouseMove)
鼠标没有按下移动
void MouseMove(GLint xMouse,GLint yMouse)
void PassiveMouseMove( GLint xMouse,GLint yMouse)
双缓存技术
什么是双缓存技术?
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB)
再在绘图函数中使用glutSwapBuffers
交换缓存