Actionscript 3 如何计算Flex中两条相交线之间的角度

Actionscript 3 如何计算Flex中两条相交线之间的角度,actionscript-3,flash,apache-flex,flash-builder,Actionscript 3,Flash,Apache Flex,Flash Builder,如果有两行,则为line1和line2。如何计算这两条线之间的角度 如果直线1有点{(x1,y1)、(x2,y2)},直线2有点{(x3,y3)、(x4,y4)} 我知道如何计算坡度。有没有在flex中计算角度的想法 让我们知道斜坡是什么 var angleRadians:Number=Math.abs(Math.atan2(y2-y1,x2-x1)-Math.atan2(y4-y3,x4-x3)); if (angleRadians>0.5*Math.PI) angleRadians=M

如果有两行,则为line1和line2。如何计算这两条线之间的角度

如果直线1有点{(x1,y1)、(x2,y2)},直线2有点{(x3,y3)、(x4,y4)}

我知道如何计算坡度。有没有在flex中计算角度的想法

让我们知道斜坡是什么

var angleRadians:Number=Math.abs(Math.atan2(y2-y1,x2-x1)-Math.atan2(y4-y3,x4-x3));
if (angleRadians>0.5*Math.PI) angleRadians=Math.PI-angleRadians;

简而言之,得到两个斜率,一个减去另一个,将结果绝对化(角度为正),因为交点周围有4个角度,所以如果我们得到一个更大的角度,则将其缩小。

当斜率为knwon时,您可以像

斜率M=y2-y1/x2-x1,M=tanX,角度X=弧tan(M)

代码:

degreesTwoVectors(circle1, circle2, circle3, circle4);
//v1A: Object A of vector 1;
//v1B: Object B of vector 1;

//v2A: Object A of vector 2;
//v2B: Object B of vector 2;
两个向量之间的度数:

public function degreesTwoVectors(v1A:Object, v1B:Object, v2A:Object, v2B:Object):Number 
{
    var angle = (Math.atan2(v1B.y-v1A.y, v1B.x-v1B.x) - Math.atan2(v2B.y-v2A.y, v2B.x-v2B.x)) * (180 / Math.PI);
    if (angle >  180) angle -= 360;
    if (angle < -180) angle += 360;
    return angle;
}
public function radiansTwoVectors(v1A:Object, v1B:Object, v2A:Object, v2B:Object):Number 
{
    var angle = Math.atan2(y2-y1, x2-x1) - Math.atan2(y4-y3, x4-x3);
    if (angle >  Math.PI) angle -= Math.PI*2;
    if (angle < -Math.PI) angle += Math.PI*2;
    return angle;
}


说明:

degreesTwoVectors(circle1, circle2, circle3, circle4);
//v1A: Object A of vector 1;
//v1B: Object B of vector 1;

//v2A: Object A of vector 2;
//v2B: Object B of vector 2;

嗨,韦斯珀。。iam得到的值为0.12,0.15,0.25。那么这个角度是多少(比如85度或60度)乘以180,再除以π。我特意写了“弧度”。谢谢你的快速回复和准确回答