現在描画されているパスが既存のパスに接触/交差しているかどうかを検出する方法があるかどうかを知りたいです。既存のパスは描画されるか、背景画像の一部になります。現在のパスが完全に描画された後でこれを見つけることができれば、それも役に立ちます。最悪のシナリオでは、2つのパスが接触しているかどうかを確認するために、ピクセルごとにチェックを行うことができますか?
質問する
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 に答える