var Arr:Array=new Array();
Arr.push({m_type:null});//0
Arr.push({m_type:"point",m_x:100,m_y:100});//1
Arr.push({m_type:"point",m_x:200,m_y:200});//2
Arr.push({m_type:"point",m_x:100,m_y:200});//3
Arr.push({m_type:"point",m_x:200,m_y:100});//4
Arr.push({m_type:"line2",m_p1:1,m_p2:2}); //5
Arr.push({m_type:"line2",m_p1:3,m_p2:4}); //6
//以上是两条直线的数组表示,如何求出以上两条直线的交点坐标呢?
//调用下面的函数,求编号为5,6的两直线交点。
p_l_l(5,6);
function p_l_l(line1:Number,line2:Number){
var line1_p1=Arr[line1].m_p1;
var line1_p2=Arr[line1].m_p2;
var line2_p1=Arr[line2].m_p1;
var line2_p2=Arr[line2].m_p2;
var line1_p1_x=Arr[line1_p1].m_x;
var line1_p1_y=Arr[line1_p1].m_y;
var line1_p2_x=Arr[line1_p2].m_x;
var line1_p2_y=Arr[line1_p2].m_y;
var line2_p1_x=Arr[line2_p1].m_x;
var line2_p1_y=Arr[line2_p1].m_y;
var line2_p2_x=Arr[line2_p2].m_x;
var line2_p2_y=Arr[line2_p2].m_y;
var line1_k=(line1_p1_x-line1_p2_x)/(line1_p1_y-line1_p2_y);
var line1_b=line1_p1_y- line1_k*line1_p1_x;
var line2_k=(line2_p1_x-line2_p2_x)/(line2_p1_y-line2_p2_y);
var line2_b=line2_p1_y- line2_k*line2_p1_x;
node_x=(line1_b-line2_b)/(line2_k-line1_k);
node_y= (line2_k*line1_b-line1_k*line2_b)/(line2_k-line1_k);
trace(node_x,node_y);
}