我怎样才能在opengl中点到屏幕的末尾?

时间:2014-11-14 17:38:57

标签: opengl 2d glut

如何从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

1 个答案:

答案 0 :(得分:0)

你必须计算粒子必须飞行的方向,由

给出
d = normalize(MousePos - ScreenCenter)

在每一帧中,您可以通过添加方向(最可能是控制速度的因子)来更新您的点位置:

PointPos = PointPos + d * speed

当您到达屏幕的边框时,您会使该点消失。通过针对屏幕的最小值和最大值测试PointPos,测试是否离开可见区域应该是直截了当的。