【发布时间】:2014-05-27 07:55:24
【问题描述】:
我想在四个点之间找到一个点。请帮助我,有什么算法吗? 我想用java程序编写。
谢谢, 尼丁
【问题讨论】:
-
“四点之间的点与否”到底是什么意思?你指的是对角线的交点吗?
-
使用数学!首先尝试解决数学问题(用铅笔和纸),最后尝试将其转换为代码。
标签: java math coordinates point rectangles
我想在四个点之间找到一个点。请帮助我,有什么算法吗? 我想用java程序编写。
谢谢, 尼丁
【问题讨论】:
标签: java math coordinates point rectangles
您可以使用java.awt.Polygon。
public boolean contains(Point p)
检查此Polygon 是否包含指定的Point。它的算法非常快。如果您需要更快的方法,read this。
【讨论】:
假设你有一个叫做 r 的矩形,这个 r 有一个 x 位置、y 位置、宽度和高度。
中间是:
Point p = new Point(r.x + (r.width / 2), r.y + (r.height / 2));
检查点是否在矩形内
if(p.x >= r.x && p.y >= r.y && p.x <= r.x + r.width && p.y <= r.y + r.height){
//The point is inside the rectangle
}
如果点的布局是这样的,检查点是否在四个点内:
A B
C D
if(p.x >= a.x && p.y >= a.y && p.x <= b.x && p.y <= d.y){
//The point is inside the points
}
【讨论】: