在Android中检测重叠路径

时间:2012-04-12 09:06:08

标签: android

enter image description here我想知道是否有某种方法可以检测当前绘制的路径是否接触/穿过现有路径。现有路径可以是绘制的,也可以是背景图像的一部分。 它也会很有帮助,如果我能够在之后找到,则完全绘制当前路径。 在最糟糕的情况下,我可以进行逐像素检查以查看两条路径是否正在接触?

2 个答案:

答案 0 :(得分:0)

您可以将行保存在列表中,然后检查要绘制的行以对照列表中的每一行以查看它是否相交。您将在stackoverflow上找到有关如何检测行交叉的大量答案。

    ArrayList<Pair<Pair<Integer,Integer>,Pair<Integer,Integer>>> lineList = new ArrayList<Pair<Pair<Integer, Integer>, Pair<Integer, Integer>>>();

    // add all your lines to the list
    // lineList.add(line);

    // handle the last line
    int startX = 10;
    int startY = 20;
    int endX = 40;
    int endY = 50;

    Pair<Integer,Integer> lineStart = new Pair<Integer, Integer>(startX, startY);
    Pair<Integer,Integer> lineEnd = new Pair<Integer, Integer>(startX, startY);
    Pair<Pair<Integer,Integer>,Pair<Integer,Integer>> lastLine = new Pair<Pair<Integer, Integer>, Pair<Integer, Integer>>(lineStart, lineEnd);

    for(Pair<Pair<Integer,Integer>,Pair<Integer,Integer>> l: lineList){
        // if "lastLine" intersects "l" do you stuff
    }

答案 1 :(得分:0)

使用路径定义行,然后将android.graphics.Region设置为该路径。

后来检查所有区域是否相互交叉
region1.op(region2, Op.INTERSECT);