Actionscript 3 三角三角法(ActionScript 3)
我正试图在ActionScript3中编写一个公式,它将给我以度为单位的var“z”(请参见下图),然后我将其转换为弧度 我已经知道变量“x”和“y”的值了。使用三角学,如何计算斜边的长度,从而计算var z的可变角度?AS3或psuedocode中的解决方案将非常有用。谢谢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,它可以同
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));