帮我详细地解释一下这段代码void mousemove(int x, int y) { if (mask != -1) { float mouse_x = (x - 200) / 200.0f, mouse_y = (200 - y) / 200.0f; Ctrl_points[mask][0] = mouse_x; Ctrl_points[mask][1] = mouse_y; glutPostRedisplay(); // 重绘图像 } }
时间: 2023-05-24 21:02:22 浏览: 148
这段代码是一个鼠标移动的回调函数,它接受两个参数x和y,表示当前鼠标的位置。在函数中,首先判断mask是否等于-1,如果不等于-1,说明当前有控制点被选中。然后计算鼠标相对于窗口中心点的偏移量,并将其赋值给选中的控制点的坐标数组Ctrl_points[mask][0]和Ctrl_points[mask][1]。最后调用glutPostRedisplay()函数来触发窗口重绘。
阅读全文