Java 测试矩形是否包含另一个矩形的全部或部分?

Java 测试矩形是否包含另一个矩形的全部或部分?,java,android,algorithm,Java,Android,Algorithm,我有以下代码: 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(graphicsCont

我有以下代码:

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内


谢谢

只需将
RectF.contains()
与要测试相交的形状的每个顶点一起使用即可

甚至更简单的是,
RectF.intersects()
将为您处理所有这些


这一切都在。

只需使用
相交
方法即可:

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

对于部分匹配(非完全矩形),相交不是正的吗?否,
intersects()
对于部分重叠和完全重叠,将返回true-两者都计为相交。您可以在以下位置查看源代码: