2008-09-11 79 views
7

我正在尝试在ActionScript 3中编写一个公式,它将以度数给出var“z”(请参阅​​下图),然后我将其转换为弧度。三角三角函数(ActionScript 3)

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

triangle

回答

6

您需要的是:

var h:Number = Math.sqrt(x*x + y*y); 
var z:Number = Math.atan2(y, x); 

这应该给你弧度的角度,你可能需要交换x/y,并可能增加或删除90度,但它应该做的伎俩! (请注意,你甚至不需要^h得到ž当你使用ATAN2)

我用乘法,而不是Math.pow()仅仅是因为数学是相当缓慢的,你可以这样做:

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

它应该完全一样。

4

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

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

而且,如果动作的数学库拥有它,使用arctan2,它正确地采取x和y和涉及的迹象。

0

@Patrick说了什么,斜边也是sqrt(x^2 + y^2)

1

你想要的角度与y和h之间的角度相反。

我们叫ayh之间的角度,你想要的角度实际上是180 - aPI - a根据你单位(度或弧度)上。

现在几何告诉我们:

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

使用棕褐色(),我们得到:

a = arctan(x/y) 

我们正在寻找180 - 一个,你应该计算:

180 - arctan(x/y)