java - android中的路径交叉点

标签 java android graphics path android-gesture

我的 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/

相关文章:

java - 使用RequestMapping无法获取表单数据的处理方法

java - Android 上的 Material 谷歌库中缺少组件

c# - 顶点着色和计算光照矢量效果

java - 在 Java 2D 中创建复合形状

java - 为什么 actionPerform() 在 Event Dispatch Thread 中运行,而 componentAdded() 却没有?

java - linux下如何获取下载文件路径?

java - 如何确保我在java中的矩形是一个有效的矩形

java - 在代码中,可以通过 wifi/3g 下载 GPS 年历并将其输入 Android 手机上的 GPS

javascript - Android 在 WebView 中调用 API <= 18 的 JavaScript 函数

java - Path() - 智能彩色段