分享

求两直线交点坐标

 古罗 2007-11-29
求两直线交点坐标
2007年02月27日 星期二 下午 08:21

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);
}

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多