我正在尝试计算抛出物体的角度,如何在Lua中应用公式。
我有这些价值观:
x1,y1,z1 = 1491,1560,11
x2,y2,z2 = 1491,1560,150
我基于这个视频:https://www.youtube.com/watch?v=QWIZXRjMspI
我正在尝试:公式:cos(0)= a * b / | a || b |
如果您的问题是,如何在Lua中编写此公式,那么:
根据您的环境,您可能已经有一些内置数据类型可以提供帮助。例如,在Codea中,有预定义的vec3类型和相关方法(点,长度等)可以帮助:
local a = vec3(4, -3, 5)
local b = vec3(9, 7, -10)
local ans = math.acos(a:dot(b) / (a:len() * b:len()))
print(math.deg(ans))
如果您使用纯Lua,那么您可以使用表来表示3D矢量,并为点积和幅度编写自己的函数。 Lua数学库在所有情况下都有帮助:
local c = {4, -3, 5}
local d = {9, 7, -10}
local ansAgain = math.acos(myDot(c, d) / (myMag(c) * myMag(d)))
print(math.deg(ansAgain))
function myDot(a, b)
return (a[1] * b[1]) + (a[2] * b[2]) + (a[3] * b[3])
end
function myMag(a)
return math.sqrt((a[1] * a[1]) + (a[2] * a[2]) + (a[3] * a[3]))
end
使用Lua算术运算符可以解决您的问题:
https://www.lua.org/manual/5.3/manual.html#3.4.1
而Lua的数学库提供的功能
https://www.lua.org/manual/5.3/manual.html#6.7
你需要的只是一些非常基本的Lua。一旦你了解了一点,你就可以编写自己的小矢量库或使用现有的矢量库了。