Aug
04
2008
Find Intersection Point of two lines in AS3
Posted by: Keith H in ActionScript 3, Flash 9, tags: IntersectionThe 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; }
Entries (RSS)
[...] uses the “lineIntersectLine” function of the earlier [...]
Thanks Keith, for the solution. Saved my time.