2012-01-18 2 views
0

Как бы узнать, имеются ли какие-либо точки данного Rectangle внутри Polygon?Прямоугольник внутри полигона?

Я пробовал:

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

Это половина работы. Он возвращает true только тогда, когда верхний левый угол прямоугольника находится в многоугольнике (да, я знаю, почему).

Есть ли способ проверить, является ли ЛЮБОЙ из точек прямоугольника в полигоне?

Заранее благодарен!

+0

вы пробовали [polygon.intersects (прямоугольник)] (http://docs.oracle.com/javase/6/docs/api/java/awt/Polygon.html#intersects (java.awt.geom.Rectangle2D))? – user1097489

ответ

0

Я нашел лучший способ сделать это:

return polygon.intersects(rect);

+0

Содержит первое использование, пересекает, затем использует Crossing (смотря на реализацию), там могут быть случаи, которые содержат, будут лучше, стоит более глубокую проверку. –

3

public boolean contains(Rectangle2D r)

Поэтому в основном вам нужно сделать:

polygon.contains(rect) 
+0

@BenvanGompel благодарит вас, пропустил его как-то –

+0

Это работает лучше, но не проверяет ВСЕ пункты. Он просто просто проверяет сторону прямоугольника ... – Confiqure

+0

@ Документация JavaCoder-1337 гласит: «истинно, если внутренность формы полностью содержит Rectangle2D» –

Смежные вопросы