Math 给定一个圆上相对于其度数的两点,它们之间的度数是多少?
注意:我正在使用Lua 所以,我想找出一个圆上两点之间的度数。问题是介于340度和20度之间,正确答案是40度,但做类似的事情Math 给定一个圆上相对于其度数的两点,它们之间的度数是多少?,math,lua,trigonometry,Math,Lua,Trigonometry,注意:我正在使用Lua 所以,我想找出一个圆上两点之间的度数。问题是介于340度和20度之间,正确答案是40度,但做类似的事情 function FindLeastDegrees(s, f) return ((f - s+ 360) % 360) end print(FindLeastDegrees(60, 260)) -- S = Start, F = Finish (In degrees) 它适用于所有情况,除了试图计算两者之间的距离。下面的代码是我下一次失败的尝试 fu
function FindLeastDegrees(s, f)
return ((f - s+ 360) % 360)
end
print(FindLeastDegrees(60, 260))
-- S = Start, F = Finish (In degrees)
它适用于所有情况,除了试图计算两者之间的距离。下面的代码是我下一次失败的尝试
function FindLeastDegrees(s, f)
local x = 0
if math.abs(s-f) <= 180 then
x = math.abs(s-f)
else
x = math.abs(f-s)
end
return x
end
print(FindLeastDegrees(60, 260))
所以这失败了/
那么你如何在另外两个度数之间找到最短的度数,然后是顺时针还是逆时针(加或减)到达那里呢。我完全糊涂了
我正在尝试做的一些例子
FindLeastDegrees(60, 350)
--> 70
FindLeastDegrees(-360, 10)
--> 10
这似乎很难!我知道我将不得不使用
抱歉,描述太长,我想你可能已经知道了/ 如果度数在0到360之间,则可以跳过
%360
部分:
function FindLeastDegrees(s, f)
diff = math.abs(f-s) % 360 ;
return math.min( 360-diff, diff )
end
他们不是。但是,我可能会这样做:函数FindLeastDegrees(s,f)s=((s%360)>=0)和(s%360)或360-(s%360);f=((f%360)>=0)和(f%360)或360-(f%360);返回math.min(360 math.abs(f-s),math.abs(f-s))结束打印(FindLeastDegrees(60260)),额外的代码是获取度数的代码?啊。我知道你在那里做了什么!谢谢这是链接
function FindLeastDegrees(s, f)
diff = math.abs(f-s) % 360 ;
return math.min( 360-diff, diff )
end