我想知道是否有某种方法可以检测当前绘制的路径是否接触/跨越现有路径。现有路径要么是绘制的,要么是背景图像的一部分。如果在当前路径完全绘制后我能够找到它,这也会有所帮助。在最坏的情况下,我可以逐像素检查两条路径是否接触吗?
问问题
1400 次
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 回答