我正在尝试计算物体的角度,如何在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 |
答案 0 :(得分:0)
使用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。了解更多信息后,您就可以编写自己的小矢量库或使用现有的矢量库。
答案 1 :(得分:0)
如果您的问题是如何在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