我的 android 代码中有 2 个路径对象。我一直尝试检查这些路径是否相交,但无法做到。如何检查路径是否相交。感谢任何好的回应, 谢谢 !
最佳答案
Dheeraj 给出的答案有你问题的答案:
https://stackoverflow.com/a/9918830/1268168
这是他的答案的复制和粘贴:
我能想到的另一种方法适用于可以使用路径构建的简单对象。
一旦你有两个边界由路径表示的对象,你可以试试这个:
Path path1 = new Path();
path1.addCircle(10, 10, 4, Path.Direction.CW);
Path path2 = new Path();
path2.addCircle(15, 15, 8, Path.Direction.CW);
Region region1 = new Region();
region1.setPath(path1, clip);
Region region2 = new Region();
region2.setPath(path2, clip);
if (!region1.quickReject(region2) && region1.op(region2, Region.Op.INTERSECT)) {
// Collision!
}
一旦将对象设置为路径,就可以使用 drawPath() 直接绘制它们。您还可以通过 transform()ing 路径执行移动。
根据我的理解,上面代码中的变量“clip”应该是路径的边界框。对于一般用途,我使用
Region clip = new Region(0, 0, layoutWidth, layoutHeight);
布局宽度和高度可以是 Canvas 或 Activity 的大小或其他任何大小。
关于java - android中的路径交叉点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11184397/