如何从速度和三维角向量获得三维速度向量。

我有一个名为AngleToVector(speed,xAngle,yAngle,zAngle)的函数

function AngleToVector(speed,xAngle,yAngle,zAngle)

    local angle = Vector3.new(xAngle,yAngle,zAngle)

    --
    -- 计算
    --

    local position = Vector3.new(SOMETHING,SOMETHING,SOMETHING)
    return position

end

我决定重写整个问题。在图片中,sqrt(27)是子弹在一秒钟内行进的距离。假设我知道控制这条线指向的3个角度,我正尝试使用我的“速度”标量和显示我的标量方向的3个角度来找到3条红色、绿色和蓝色虚线的长度。

enter image description here

点赞
用户1718554
用户1718554

你指出返回的最终 Vector3 应该包含主体行进到达一定速度时的值。这其实是很简单的。返回的 Vector3 应该是角度向量与速度标量相乘的单位向量。

这更多是一个数学问题而不是一个编程问题,我不熟悉您正在使用的库,所以我将以数学方式进行回答。首先,将角度向量的每个组件除以角度向量的大小。这会在该方向上给出一个单位向量(例如,该方向上的1米)。将此单位向量乘以给定的速度,这将在该方向上给出 speed 步。然后您可以将此新向量添加到当前位置以移动对象。

我建议您阅读有关向量和矩阵的一些内容。

2015-10-12 19:59:41
用户5472431
用户5472431

velocityVector = CFrame.Angles(xAngle,yAngle,zAngle).lookVector*speed

这可能是你想要的。CFrame.lookVector 给出的是Luke所说的单位向量。当你习惯使用时,CFrame 可以使一切变得更加容易。

2015-10-21 18:57:45