计算点到线段的最短距离



//计算点到线段的最短距离  
double x1, y1, x2, y2, x3, y3;      
double px = x2 - x1;  
double py = y2 - y1;  
double som = px * px + py * py;  
double u =  ((x3 - x1) * px + (y3 - y1) * py) / som;  
if (u > 1) {  
    u = 1;  
}  
if (u < 0) {  
    u = 0;  
}  
//the closest point  
double x = x1 + u * px;  
double y = y1 + u * py;  
double dx = x - x3;  
double dy = y - y3;        
double dist = sqrt(dx*dx + dy*dy);   


0