pointf,pointl,point分别为第一个,第二个点和判断的点思路:最终就是求出点到直线的距离
先用余弦定理求一个底角的余弦,再反余弦求正弦
再由点到端点的距离和正弦值求出点到直线的距离再由你设定误差值,要在画图板上监听
线端的两个端点肯定是已知的
或者事先要记录在容器中。
public boolean isPoint(Point point) {
//得到两点之间的距离的一半

double a=Math.sqrt((pointf.x-pointl.x)*(pointf.x-pointl.x)+(pointf.y-pointl.y)*(pointf.y-pointl.y));
double b=Math.sqrt((point.x-pointl.x)*(point.x-pointl.x)+(point.y-pointl.y)*(point.y-pointl.y));
double c=Math.sqrt((pointf.x-point.x)*(pointf.x-point.x)+(pointf.y-point.y)*(pointf.y-point.y));
double sinaA=Math.sin(Math.acos((b*b+c*c-a*a)/(2*b*c)));
double offSet=c*sinaA;
if(offSet>6){
return false;
}
else{
return true;
}
}