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-两者都计为相交。您可以在以下位置查看源代码: