-1

私はこのコードを持っています:

graphicsContext.setCanvas(canvas);
graphicsContext.clear();
camera.applyTransform(graphicsContext);
RectF screen = camera.getCamRect(getWidth(), getHeight());

for(Road r : roads) {
  if(screen.contains(r.getRect())) {
    r.draw(graphicsContext);
  }
}

for(Intersection i : intersections) {
  if(screen.contains(i.getRect())) {
    i.draw(graphicsContext);
  }
}

唯一の問題は、containsメソッドがtrueを返すには、AのBの4つの頂点すべてを持っている必要があることです。BがBの一部であるか完全に内部であるかを確認するために、上、左、下、右を指定して、どのタイプのアルゴリズムを使用できますか。

ありがとう

4

2 に答える 2

5

RectF.contains()交差をテストする形状の各頂点で使用するだけです

またはさらに簡単に、RectF.intersects()すべてを処理します。

それはすべてドキュメンテーションにあります。

于 2012-10-09T22:11:10.040 に答える
0

intersects代わりにメソッドを使用してください:

for(Road r : roads)
{
    if(RectF.intersects(screen, r.getRect()))
    {
        r.draw(graphicsContext);
    }
}
于 2012-10-09T22:11:26.757 に答える