有帮助?打赏吧!

求两条直线相交点 AS3代码

var p1Start:Point = new Point(0,0);
var p1End:Point = new Point(50,50);

var p2Start:Point = new Point(50,50);
var p2End:Point = new Point(100,100);

var p:Point = new Point();


trace(checkPoint())
function checkPoint()
{
    if (p1Start.x == p1End.x)
    {
        if (p2Start.x == p2End.x)
        {
            trace("平行线");
            p = null;
        }
        else
        {
            p.x = p1Start.x;
            p.y = p2Start.y+(p1Start.x-p2Start.x)/(p2End.x-p2Start.x)*(p2End.y-p2Start.y);
        }
    }
    else if (p2Start.x == p2End.x)
    {
        p.x = p2Start.x;
        p.y = p1Start.y+(p2Start.x-p1Start.x)/(p1End.x-p1Start.x)*(p1End.y-p1Start.y);
    }
    else
    {
        var K1:Number = (p1Start.y-p1End.y)/(p1Start.x-p1End.x);
        var K2:Number = (p2Start.y-p2End.y)/(p2Start.x-p2End.x);
        if (K1 == K2)
        {
            trace("平行线");
            p = null;
        }
        else
        {
            var B1:Number = (p1Start.x*p1End.y-p1Start.y*p1End.x)/(p1Start.x-p1End.x);
            var B2:Number = (p2Start.x*p2End.y-p2Start.y*p2End.x)/(p2Start.x-p2End.x);
            p.x = (B2 - B1) / (K1 - K2);
            p.y = K1 * p.x + B1;
        }
    }
    return p;
}

 

posted @ 2016-08-29 15:47  luoeeyang  Views(288)  Comments(0Edit  收藏  举报