function dist(x, y, startx, starty, endx, endy)
{
var se = (startx-endx)*(startx-endx)+(starty-endy)*(starty-endy);//线段两点距离平方
var p = ((x-startx)*(endx-startx)+(y-starty)*(endy-starty)); //向量点乘=|a|*|b|*cosA
var r = p/se; //r即点到线段的投影长度与线段长度比
var outx=startx+r*(endx-startx);
var outy=starty+r*(endy-starty);
var des =(x-outx)*(x-outx)+(y-outy)*(y-outy);
//alert(Math.round(Math.sqrt(des)));
alert(Math.sqrt(des));
}
有这个方法 就能判断点是否在线上(des=0)或者边上。用于单击鼠标判断是否选择一条直线
{
var se = (startx-endx)*(startx-endx)+(starty-endy)*(starty-endy);//线段两点距离平方
var p = ((x-startx)*(endx-startx)+(y-starty)*(endy-starty)); //向量点乘=|a|*|b|*cosA
var r = p/se; //r即点到线段的投影长度与线段长度比
var outx=startx+r*(endx-startx);
var outy=starty+r*(endy-starty);
var des =(x-outx)*(x-outx)+(y-outy)*(y-outy);
//alert(Math.round(Math.sqrt(des)));
alert(Math.sqrt(des));
}
有这个方法 就能判断点是否在线上(des=0)或者边上。用于单击鼠标判断是否选择一条直线