6

在此处输入图像描述我想知道是否有某种方法可以检测当前绘制的路径是否接触/跨越现有路径。现有路径要么是绘制的,要么是背景图像的一部分。如果在当前路径完全绘制我能够找到它,这也会有所帮助。在最坏的情况下,我可以逐像素检查两条路径是否接触吗?

4

2 回答 2

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
    }
于 2012-04-12T09:10:25.973 回答
0

使用路径来定义线条,然后将 android.graphics.Region 设置为该路径。稍后检查所有区域是否相交

region1.op(region2, Op.INTERSECT);
于 2012-04-12T09:14:46.027 回答