代码之家  ›  专栏  ›  技术社区  ›  Fire Crow

Actionscript线三角角度

  •  2
  • Fire Crow  · 技术社区  · 17 年前

    我如何在动作脚本3中找到两点之间的线的角度。

    我需要线的角度来旋转尖端的箭头,以准确指向当前绘制的线段

    var length:Number = 100;
    var angle:uint = 48
    graphics.lineTo(Math.cos(angle) * length, Math.sin(angle) * length);
    

    我需要的是

    给定一条线的起点和终点,这条线的角度是多少。

    非常感谢你的建议

    3 回复  |  直到 17 年前
        1
  •  5
  •   HanClinto    17 年前

    每个人都在建议使用以下公式 Math.atan() Math.atan2() .

    只需传入一个X和一个Y值,它就会给你一个角度。没有特殊情况,只有坐标。与往常一样,返回值以弧度为单位,从-pi到+pi。

        2
  •  1
  •   Mike Dinescu    17 年前

    公式为 角度 (也称为线的斜率)如下:

    angle = Math.atan((y2 - y1) / (x2 - x1))
    

    其中:(x1,y1)是第一点(直线起点)的坐标,(x2,y2)是第二点(直线终点)的坐标

    此外,请注意,角度是以弧度为单位返回的,所以如果你需要得到以度为单位的角度,你需要乘以180并除以PI:

    angleInDegrees = angle * 180/Math.PI;
    
        3
  •  1
  •   ChrisF    17 年前

    你用得到终点的公式走在正确的线上。你只需要把方程式颠倒过来:

    tan(theta) = opposite / adjacent
    

    这给出了:

    angle = arctan(opposite / adjacent)
    

    请注意,当相邻值为零时(除以零),arctan会为零本身引发异常,因此您需要捕获直线垂直或水平的特殊情况。

    正如Miky D所指出的,角度是以弧度为单位的,但无论如何,你可能需要它以这种形式来计算箭头的角度。