三角三角(ActionScript 3)

时间:2020-03-05 18:51:19  来源:igfitidea点击:

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

我已经知道变量" x"和" y"的值。使用三角函数,如何计算斜边的长度,从而计算var z的可变角度? AS3或者psuedocode中的解决方案将非常有帮助。谢谢。

解决方案

回答

z等于yH的180度角。或者:

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

另外,如果有动作脚本的数学库,请使用arctan2,它可以同时获取x和y并正确处理符号。

回答

@帕特里克所说的,斜边也是sqrt(x ^ 2 + y ^ 2)

回答

所需的角度与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)

回答

我们需要的是:

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

而且应该完全一样。