Java 如何将矢量2应用于对象的方向/速度

Java 如何将矢量2应用于对象的方向/速度,java,android,libgdx,Java,Android,Libgdx,我有一个表示方向和大小(长度)的线段,当我绘制线段时,它会按它应该的方式工作。getAimArmsRotation值是从另一个包含touchpad值的类中提取的 if (player.getFacingRight()) { lOriginX = (player.getPosition().x + Player.SIZEw/2); lOriginY = (player.getPosition().y + Player.SIZEh/1.5f); //l

我有一个表示方向和大小(长度)的线段,当我绘制线段时,它会按它应该的方式工作。getAimArmsRotation值是从另一个包含touchpad值的类中提取的

if (player.getFacingRight()) {
        lOriginX = (player.getPosition().x + Player.SIZEw/2);
        lOriginY = (player.getPosition().y + Player.SIZEh/1.5f);
        //lEndX = lOriginX + (float)Math.cos((player.getAimArmsRotation())/57) * 15f;
        //lEndY = lOriginY + (float)Math.sin((player.getAimArmsRotation())/57) * 15f;
        laserO = new Vector2(lOriginX, lOriginY);
        laserE = new Vector2(lEndX, lEndY);
但是,如果我使用此计算中的向量或浮点数,并将其应用于模型的速度向量,则不会像我认为的那样沿线段移动模型

编辑:抱歉,我在创建问题时想附加此图片。图1是我的线段的外观,当我设置组成线段的速度值时,它会沿着图2所示的方向移动。


getAimArmsRotation()只是一个使用另一个类中触摸板的值设置精灵旋转的方法。我认为这些值并不重要,因为这些浮点数是我用来给线段提供长度和方向的,我认为给一个对象一个x和y浮点数的速度会给它和直线相同的方向?

感谢DV,jerks

当我试图沿着所需路径发送对象时,没有考虑对象的原始位置。我只使用LineEnd值,我需要给对象它的原点来正确计算轨迹或路径

for (GameObject go: gObjects) {
            if (go.getType() == PROJECTILE_ID) {
        go.getVelocity().x = player.getLineEndX() - player.getLineOrgX();
        go.getVelocity().y = player.getLineEndY() - player.getLineOrgY();
        System.out.println(go.getVelocity().x);
        System.out.println(go.getVelocity().y);
            }
        }

确切地说,它在做什么,你没有预料到的?你期待什么?您也可以发布一些代码用于故障排除。更新了问题@JeremyScoggins请输入更多代码或一些结果。由于三角运算等原因,这可能是一个精度问题。。。尝试跟踪lEndX和lEndY的值,并比较它们是什么和它们应该是什么。我认为最简单的方法是创建一个向量,将其归一化,然后使用x和y值乘以速度和增量来更新它。