我在Unity3d游戏中找到棕褐色角度有一个问题。
代码如下
b = Mathf.Deg2Rad * (90.0f - angle);
float tan = Mathf.Tan (b);
Debug.Log ("Value of b : " + b + " Tan of b : " + tan);
此处角度值为0.
我的问题是,当我使用计算器计算时,我会得到b的结果为1.570796327 这是正确的,并且当我的计算器进入时, tan的值为0.027422438 度模式和**无限**以弧度模式
调试日志结果如下
b的值:1.570796 Tan的b:-2.287733E + 07
有什么问题?如果我错了,请原谅。
答案 0 :(得分:2)
由于浮点数不准确,切线计算的角度略大于π/2
rad(90度),导致您的回答很大。
如果您想更好地考虑这种情况,您应该检查b
是否足够接近pi/2
:如果是,则切线未定义。 E.g。
// if necessary, also account for 3pi/2 (270 deg)
if (Math.Abs(b - Math.PI / 2) < 0.00001)
// undefined or infinite
else
// finite, calculate tangent like normal