Actionscript 3 三角三角法(ActionScript 3)

Actionscript 3 三角三角法(ActionScript 3),actionscript-3,trigonometry,hypotenuse,Actionscript 3,Trigonometry,Hypotenuse,我正试图在ActionScript3中编写一个公式,它将给我以度为单位的var“z”(请参见下图),然后我将其转换为弧度 我已经知道变量“x”和“y”的值了。使用三角学,如何计算斜边的长度,从而计算var z的可变角度?AS3或psuedocode中的解决方案将非常有用。谢谢 z相当于yH的180度角。或: 180 - arctan(x/y) //Degrees pi - arctan(x/y) //radians 此外,如果actionscript的数学库中有,请使用arctan2,它可以同

我正试图在ActionScript3中编写一个公式,它将给我以度为单位的var“z”(请参见下图),然后我将其转换为弧度

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


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

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

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

正如@Patrick所说,斜边也是
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(),我们得到:

当我们寻找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()只是因为数学非常慢,您可以:

var h:Number = Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2));
而且应该完全一样

var h:Number = Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2));