三角形 (ActionScript 3)
-
09-06-2019 - |
题
我正在尝试在 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 度,但它应该可以解决问题!(请注意,您甚至不需要 H 要得到 z 当你使用atan2时)
我使用乘法而不是 Math.pow() 只是因为数学非常慢,你可以这样做:
var h:Number = Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2));
而且应该是一模一样的。
其他提示
z 相当于 yH 的 180 度角。或者:
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)
.
不隶属于 StackOverflow