如何从2d屏幕中间的形状朝向鼠标光标发射一个点,使其继续到屏幕边缘?
void myMouse(int button, int state, int x, int y)
{
if(button == GLUT_LEFT_BUTTON && state == GLUT_DOWN)
{
glBegin(GL_POINTS);
glColor3f(1.0, 0.0, 0.0);
glVertex2i(x,y);
glFlush();
}
}
这是一个朝向鼠标移动的点的图像:http://i.stack.imgur.com/KVdqr.png
答案 0 :(得分:0)
你必须计算粒子必须飞行的方向,由
给出d = normalize(MousePos - ScreenCenter)
在每一帧中,您可以通过添加方向(最可能是控制速度的因子)来更新您的点位置:
PointPos = PointPos + d * speed
当您到达屏幕的边框时,您会使该点消失。通过针对屏幕的最小值和最大值测试PointPos,测试是否离开可见区域应该是直截了当的。