The intersection Point of two lines is useful to know. This is a function to find it in AS3.


//---------------------------------------------------------------
//Checks for intersection of Segment if as_seg is true.
//Checks for intersection of Line if as_seg is false.
//Return intersection of Segment "AB" and Segment "EF" as a Point
//Return null if there is no intersection
//---------------------------------------------------------------
function lineIntersectLine(A:Point,B:Point,E:Point,F:Point,as_seg:Boolean=true):Point
{
	var ip:Point;
	var a1:Number;
	var a2:Number;
	var b1:Number;
	var b2:Number;
	var c1:Number;
	var c2:Number;
 
	a1= B.y-A.y;
	b1= A.x-B.x;
	c1= B.x*A.y - A.x*B.y;
	a2= F.y-E.y;
	b2= E.x-F.x;
	c2= F.x*E.y - E.x*F.y;
 
	var denom:Number=a1*b2 - a2*b1;
	if(denom == 0){
		return null;
	}
	ip=new Point();
	ip.x=(b1*c2 - b2*c1)/denom;
	ip.y=(a2*c1 - a1*c2)/denom;
 
	//---------------------------------------------------
	//Do checks to see if intersection to endpoints
	//distance is longer than actual Segments.
	//Return null if it is with any.
	//---------------------------------------------------
	if(as_seg){
		if(Point.distance(ip,B) > Point.distance(A,B)){
			return null;
		}
		if(Point.distance(ip,A) > Point.distance(A,B)){
			return null;
		}	
 
		if(Point.distance(ip,F) > Point.distance(E,F)){
			return null;
		}
		if(Point.distance(ip,E) > Point.distance(E,F)){
			return null;
		}
	}
	return ip;
}
2 Responses to “Find Intersection Point of two lines in AS3”
  1. [...] uses the “lineIntersectLine” function of the earlier [...]

  2. Thanks Keith, for the solution. Saved my time.

Leave a Comment

Thanks for visiting www.keith-hair.net