【发布时间】:2021-09-07 01:39:39
【问题描述】:
所以我发现了如何仅使用一个角度在 2D 中创建 vector2,但现在我需要使用两个或三个角度的 vector3
我用来获取二维向量的代码:
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
【问题讨论】:
-
dosent work- 你为什么这么认为?你有输入和正确输出的例子来检查你的计算是否正确吗? -
如果所有的角度都是0,那么向量应该是什么? (1,0,0)?您所要做的就是围绕每个轴旋转该向量。顺序由您决定。 (另请注意,如果您首先围绕 x 轴旋转该矢量,则它没有效果)此外,您只需要两个角度即可生成任何 3d 矢量。你可以先绕 Y 轴旋转它,然后是 X。(就像你在 fps 中的样子)(因此这个公式只需要 x 和 y)
-
如果所有角度都为 0,则在任何坐标中都可以是从 0 到 1
-
@EgorSkriptunoff 我在 Lua 中测试了它,当 X 从 0 到 360(弧度)时它可以工作,但是当 Y 改变时,Vector3 Y 总是 -1 到 5 而不是 0-1 btw 力不是问题
-
您确实应该在问题中添加适当的代码,以显示问题所在。您编辑的公式是众所周知的,我非常怀疑
math.sin在正常输入时会返回错误。
标签: math vector lua trigonometry