的端點之間要找到如果點上包含兩個點的指定行我做以下檢查:查找點接近,該線
-(Boolean)isOnLine:(Line*) line point:(CGPoint) point{
//If between two dots:
if (((line.first.x <= point.x && point.x <= line.last.x)||(line.first.x >= point.x && point.x >= line.last.x))&&((line.first.y<=point.y && point.y<= line.last.y)||(line.first.y>=point.y && point.y>=line.last.y))) {
//Calculate distance:
double dist = (((double)point.y - line.first.y))/(0.00001+((double)(point.x - line.first.x)))- ((double)(line.last.y - line.first.y))/(0.00001+((double)(line.last.x - line.first.x)));
NSLog(@"Dist to line: %f", fabs(dist));
return fabs(dist) <0.5;
}else
return NO;
}
}
不知何故,但是,功能不與垂直線一起工作。我的猜測是if語句在某種意義上是無效的。
只是一個快速的想法,有你雖然扭轉了這個問題,即,如果ydiff > xdiff交換x和y? –