poi*_*oae 8 graphics android intersection path
我想检查是否(如果是,并且,如果是(x,y),则仅用于突出显示)路径确实与自身相交.如何检查路径是否与另一条路径相交也是非常有趣的.这是一个截图,以更好地解释我的意思:
Nat*_*usa -2
最简单的方法是检查任何线段是否与任何其他线段相交。线段由路径中的成对相邻点组成。具有 10 个点的路径有 9 条线段。
下面是一个如何实现这一点的示例。
import android.graphics.Point;
import java.util.List;
static Boolean isPathComplex(List<Point> path) {
if (path == null || path.size() <= 2) {
return false;
}
int len = path.size();
for (int i = 1; i < len; i++) {
Point lineAStart = path.get(i - 1);
Point lineAEnd = path.get(i);
for (int j = i + 1; j < len; j++) {
Point lineBStart = path.get(j - 1);
Point lineBEnd = path.get(j);
if (lineSegmentsIntersect(lineAStart, lineAEnd, lineBStart, lineBEnd)) {
return true;
}
} // inner loop
} // outer loop
}
static Boolean lineSegmentsIntersect(Point aInitial, Point aFinal, Point bInitial, Point bFinal) {
// left as an exercise to the reader
}
Run Code Online (Sandbox Code Playgroud)
请参阅如何检测两条线段相交的位置?有关如何实现 lineSegmentsIntersect 函数的示例。
| 归档时间: |
|
| 查看次数: |
1418 次 |
| 最近记录: |