7

我正在尝试在 ActionScript 3 中编写一个公式,该公式将以度为单位给出 var "z"(请参见下图),然后我将其转换为弧度。

我已经知道变量“x”和“y”的值。使用三角函数,我如何计算斜边的长度以及 var z 的可变角度?AS3 或伪代码中的解决方案将非常有帮助。谢谢。

三角形

4

4 回答 4

6

你需要的是这样的:

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));

它应该是完全一样的。

于 2008-09-11T19:08:16.997 回答
4

z 相当于 180 - yH 的角度。或者:

180 - arctan(x/y) //Degrees
pi - arctan(x/y) //radians

此外,如果 actionscript 的数学库有它,请使用 arctan2,它同时采用 x 和 y 并正确处理符号。

于 2008-09-11T09:27:37.610 回答
1

您想要的角度与与 y 和 h 之间的角度相同。

让我们称之为和a之间的角度,您想要的角度实际上是或 取决于您的单位(度或弧度)。yh180 - aPI - a

现在几何告诉我们:

cos(a) = y/h
sin(a) = x/h
tan(a) = x/y

使用 tan(),我们得到:

a = arctan(x/y)

当我们正在寻找 180 - a 时,您应该计算:

180 -  arctan(x/y)
于 2008-09-11T10:40:39.710 回答
0

@Patrick 所说的,斜边也是sqrt(x^2 + y^2).

于 2008-09-11T09:31:41.670 回答