求线段的交点
var p1: Point = new Point(0, 0); var p2: Point = new Point(50, 50); var p3: Point = new Point(0, 50); var p4: Point = new Point(50, 0); var p: Point = new Point; if (p1.x == p2.x) { if (p3.x == p4.x) { //平行线 p = null; } else { p.x = p1.x; p.y = p3.y + (p1.x - p3.x) / (p4.x - p3.x) * (p4.y - p3.y); } } else if (p3.x == p4.x) { p.x = p3.x; p.y = p1.y + (p3.x - p1.x) / (p2.x - p1.x) * (p2.y - p1.y); } else { var K1: Number = (p1.y - p2.y) / (p1.x - p2.x); var K2: Number = (p3.y - p4.y) / (p3.x - p4.x); if (K1 == K2) { //平行线 p = null; } else { var B1: Number = (p1.x * p2.y - p1.y * p2.x) / (p1.x - p2.x); var B2: Number = (p3.x * p4.y - p3.y * p4.x) / (p3.x - p4.x); p.x = (B2 - B1) / (K1 - K2); p.y = K1 * p.x + B1; } } trace(p.x, p.y); //output: 25,25