2012-10-09 71 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); 
    } 
} 
相關問題