如何使用 XYZ 角度创建 3D 向量

所以我发现通过只使用一个角度可以创建 2D 向量,但现在我需要使用两个或三个角度来创建 3D 向量。

我用来获取 2D 向量的代码是:

function V2ToForce(Angle,Force)
    local Force = Force or 1
    local X,Y = math.cos(Angle)*Force,math.sin(Angle)*Force
    return X,Y
end

任何伪代码都将有所帮助。

编辑: 我找到了这个公式,但它也不起作用

function Test(X,Y,Force)
    local x = math.cos(X) * math.cos(Y);
    local z = math.sin(X) * math.cos(Y);
    local y = math.sin(Y);
    return x*Force,y*Force,z*Force
end
点赞
用户15820485
用户15820485

Ty 评论说他让它运行了,虽然还有一些 bug,但是只要加一个 if 语句就可以解决了。这就是我最终得到的代码,供遇到同样问题的人参考。

function Test1(X,Y,Force)
    local X1 = math.cos(Y)*Force
    local Y1 = (math.sin(Y)*math.sin(X))*Force
    local Z1 = (-math.sin(Y)*math.cos(X))*Force
    return X1,Y1,Z1
end
function Test2(X,Y,Force)
    local X1 = math.cos(X) * math.cos(Y)
    local Z1 = -math.sin(X) * math.cos(Y)
    local Y1 = math.sin(Y)
    return X*Force,Y*Force,Z1*Force
end

抱歉我的英语不好。

2021-06-24 21:36:17