AS3极坐标从笛卡尔坐标

时间:2013-09-03 01:13:17

标签: actionscript-3 math coordinate-systems

我正在玩AS3的身体动画。我做了一个包含所有部分(不包括手指)的主体,并使用“骨架”制作XML。 XML获得了每个部分的实例以及下一部分的清晰度。我使用基本坐标(x,y)工作,当我旋转零件并再次重新计算所有链接(每个关节中的每个部分)时,身体会移动。

然而,这将要求对身体的每一个小修改进行一些计算,所以现在我正在优化它。至于设计x,y更容易,所以当创建主体实例时,类重新构建XML转换坐标到Polar系统(r,t),就像这样(“Quadro”是带坐标的节点): / p>

dx = Quadro.@x;
dy = Quadro.@y;
Quadro.@r = Math.sqrt(Math.pow(dx,2) + Math.pow(dy,2));
Quadro.@t = (dy>0)? Math.asin(dx/Quadro.@r) : Math.acos(dy/Quadro.@r);

我做了一些改动以使其正常工作,但在列表中,一个象限总是错误的!在这种情况下,左上角是错误的。颈部和头部应该在这个位置,它们位于右上角(镜像)。

AS3中正确转换的任何提示?

1 个答案:

答案 0 :(得分:2)

尝试使用它:

Quadro.@t=Math.atan2(dy,dx);

来自Wikipedia

  

笛卡尔坐标x和y可以转换为极坐标   坐标r和φ,其中r≥0,φ在区间(-π,π)中由:

     

enter image description here
  enter image description here