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