判断点是否在线段或直线上

http://www.cnblogs.com/602147629/archive/2011/04/02/2003904.html


var p:Point = new Point(10,15);
var p1:Point = new Point(10,10);
var p2:Point = new Point(10,20);

trace(isPointOnSegment(p,p1,p2));

function isPointOnSegment(p:Point,p1:Point,p2:Point):Boolean{  
  //差积是否为0,判断是否在同一直线上   
 //trace(( p1.x -p.x )*( p2.y-p.y) -( p2.x -p.x )*( p1.y-p.y));   
 if (( p1.x -p.x )*( p2.y-p.y) -( p2.x -p.x )*( p1.y-p.y)!=0)    {    
    trace("11111111111111");       
    return false;   
 }  
  //判断是否在线段上  
 if ((p.x > p1.x && p.x > p2.x) || (p.x < p1.x && p.x < p2.x))    {    
    trace("22222222222");        
    return false;   
 }  

 if ((p.y > p1.y && p.y > p2.y) || (p.y < p1.y && p.y < p2.y))    {      
    trace("3333333333333");       
    return false;    
}   

 return true;

}

你可能感兴趣的:(判断点是否在线段或直线上)