-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 方法必须具有 A 中 B 的所有 4 个顶点才能返回 true。我可以使用什么类型的算法,给定上、左、下、右来检查 B 是 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 回答