在机器人路径交点(Path intersection in android)

2019-06-25 18:19发布

我在我的Android code.I 2个路径对象已经尝试了所有的办法来检查这些路径是否相交与否,但没能做到这一点。 我如何检查是否路径相交与否。 欣赏任何反响不错,谢谢!

Answer 1:

看看Region.op

我还没有尝试过,但我会建议使用:

Region.setPath(Path path, Region clip);

从你的路径和事后你可以同时使用获得的区域:

if (region1.op(region2,Region.Op.INTERSECT)) {
  // intersection
}

检查路口...



Answer 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吸引他们()。 您也可以通过执行变换运动()荷兰国际集团的路径。

从我的理解,在上面的代码中的变量“夹子”应该是路径的边界框。 对于我使用一般用途

Region clip = new Region(0, 0, layoutWidth, layoutHeight);

在布局的宽度和高度可以是你的画布或活动或任何大小。



Answer 3:

从API 19日起, Path现在有一个op()方法。

boolean intersects = path.op(p1,p2,Path.Op.INTERSECT)


文章来源: Path intersection in android