2012-10-09 53 views
-2

我有这样的代码:测试矩形是否包含另一个矩形的全部或部分?

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); 
    } 
} 

唯一的问题是包含方法必须在将所有4个verticies B的返回true。 留下什么算法,我可以使用,给予最高的类型,底部,右侧检查B是一部分或全部内B.

感谢

回答

3

只要使用RectF.contains()与每个图形顶点的你想测试相交

或更容易,RectF.intersects()将处理所有为你。

这一切都在documentation

0

只需使用intersects方法来代替:

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