我正在尝试在 ActionScript 3 中编写一个公式,该公式将以度为单位给出 var "z"(请参见下图),然后我将其转换为弧度。
我已经知道变量“x”和“y”的值。使用三角函数,我如何计算斜边的长度以及 var z 的可变角度?AS3 或伪代码中的解决方案将非常有帮助。谢谢。
我正在尝试在 ActionScript 3 中编写一个公式,该公式将以度为单位给出 var "z"(请参见下图),然后我将其转换为弧度。
我已经知道变量“x”和“y”的值。使用三角函数,我如何计算斜边的长度以及 var z 的可变角度?AS3 或伪代码中的解决方案将非常有帮助。谢谢。
你需要的是这样的:
var h:Number = Math.sqrt(x*x + y*y);
var z:Number = Math.atan2(y, x);
这应该给你以弧度表示的角度,你可能需要交换 x/y 并可能添加或删除 90 度,但它应该可以解决问题!(请注意,当您使用 atan2 时,您甚至不需要h来获取z )
我使用乘法而不是 Math.pow() 只是因为 Math 很慢,你可以这样做:
var h:Number = Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2));
它应该是完全一样的。
z 相当于 180 - yH 的角度。或者:
180 - arctan(x/y) //Degrees
pi - arctan(x/y) //radians
此外,如果 actionscript 的数学库有它,请使用 arctan2,它同时采用 x 和 y 并正确处理符号。
您想要的角度与与 y 和 h 之间的角度相同。
让我们称之为和a
之间的角度,您想要的角度实际上是或 取决于您的单位(度或弧度)。y
h
180 - a
PI - a
现在几何告诉我们:
cos(a) = y/h
sin(a) = x/h
tan(a) = x/y
使用 tan(),我们得到:
a = arctan(x/y)
当我们正在寻找 180 - a 时,您应该计算:
180 - arctan(x/y)
@Patrick 所说的,斜边也是sqrt(x^2 + y^2)
.