如何检查给定的点是否在线段中?
How to check whether the given points are in the line segment or not?
如何判断给定的点是否在线段内?
我最初使用的是这个:
if (s == null) { return false; }
if (!(s instanceof Point)) { return false; }
return (x == ((Point) s).x && y == ((Point) s).y);
但它并没有真正起作用,因为 LineSegment 不是一个对象..
到目前为止,这是我的代码:
public class Point {
double x;
double y;
public Point(double x, double y) {
this.x = x;
this.y = y;
}
public String toString () {
return "(" + x + ", " + y + ")";
}
public Line straightThrough (Point p) {
// TODO
}
public boolean onLineSegment(LineSegment s) {
if (s == null) {
return false;
// TODO
}
}
}
编辑:据我所知,这里有一些问题可能与我的相同...我需要的答案不在那里。
好吧,假设一条线段是否由两个点定义:enpoint 和 startpoint,这就是您如何测试给定点是否在此线段上的方法:
boolean isOnLineSegment(LineSegment seg, Point test) {
return ( (test.y-seg.startPoint.y)/(test.x-seg.startPoint.x) == (test.y-seg.endPoint.y)/(test.x-seg.endPoint.y);
}
如何判断给定的点是否在线段内?
我最初使用的是这个:
if (s == null) { return false; }
if (!(s instanceof Point)) { return false; }
return (x == ((Point) s).x && y == ((Point) s).y);
但它并没有真正起作用,因为 LineSegment 不是一个对象..
到目前为止,这是我的代码:
public class Point {
double x;
double y;
public Point(double x, double y) {
this.x = x;
this.y = y;
}
public String toString () {
return "(" + x + ", " + y + ")";
}
public Line straightThrough (Point p) {
// TODO
}
public boolean onLineSegment(LineSegment s) {
if (s == null) {
return false;
// TODO
}
}
}
编辑:据我所知,这里有一些问题可能与我的相同...我需要的答案不在那里。
好吧,假设一条线段是否由两个点定义:enpoint 和 startpoint,这就是您如何测试给定点是否在此线段上的方法:
boolean isOnLineSegment(LineSegment seg, Point test) {
return ( (test.y-seg.startPoint.y)/(test.x-seg.startPoint.x) == (test.y-seg.endPoint.y)/(test.x-seg.endPoint.y);
}