检查与自己的android.graphics.path交集

我想检查是否(如果是的话,碰撞是在哪里(x,y) – 只是为了突出显示)path本身是相交的。 这也将是非常有趣的,我如何检查path是否与另一个path相交。 下面是一个截图,以更好地解释我的意思:

http://img.androidcookie.com/android/JrEmN.png

  • 如何绘制光滑/圆润的path?
  • 如何在Android L中使用“PackageInstaller”类安装/更新/删除APK?
  • 在Android中查找包含在path中的点
  • 是否有类似于file:/// android_asset /的path指向apps目录?
  • 制造商可移动存储(外部)sdcardpath
  • 在Android Studiopath中找不到SDK文件夹,而SDKpipe理器没有打开
  • 内置相机,使用额外的MediaStore.EXTRA_OUTPUT存储图片两次(在我的文件夹,并在默认情况下)
  • android如何旋转canvas矩形
  • 最简单的方法是检查是否有线段与其他线段相交。 线段由path中的相邻点组成。 有10个点的path有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 } 

    请参阅如何检测两条线段相交的位置? 例如如何实现lineSegmentsIntersect函数。