2012-01-18 68 views
0

如何查找給定的Rectangle中的任意點是否在Polygon之內?矩形在多邊形內嗎?

我曾嘗試:

final Point p = new Point(rect.x, rect.y); 
return polygon.contains(p); 

這一半的作品。只有當矩形的左上角在多邊形中時才返回true(是的,我知道爲什麼)。

有沒有一種方法來檢查是否有矩形的點是在多邊形?

在此先感謝!

+0

你試過[polygon.intersects(RECT )](http://docs.oracle.com/javase/6/docs/api/java/awt/Polygon.html#intersects(java.awt.geom.Rectangle2D中))? – user1097489 2012-01-18 12:09:39

回答

0

我發現做到這一點的最好辦法:

return polygon.intersects(rect);

+0

包含第一次使用相交,然後使用隧道(看執行),有可能包含的情況會更好,值得深入檢查。 – 2012-01-18 12:33:24

3

public boolean contains(Rectangle2D r)

所以基本上你需要做的:

polygon.contains(rect) 
+0

@ BenvanGompel謝謝,不知何故錯過了 – 2012-01-18 12:20:23

+0

這個效果更好,但沒有檢查所有的點。它僅僅只檢查矩形的身邊... – Confiqure 2012-01-18 12:21:12

+0

@ JavaCoder-1337文件說,'如果Shape內部完全包含Rectangle2D' – 2012-01-18 12:23:42