2014-02-20 3 views
0

У меня есть формы, которые используют класс Area для представления его структуры. Я хочу проверить, пересекается ли область, определяемая двумя точками (начальная точка и конечная точка) с областью. Так что начальная и конечная точки сегментов находятся за пределами Района (не считая частичную линию по площади).Форма пересечения

Класс Area есть методы, которые проверяют это Rectangle2D пересекает область, но не линия http://docs.oracle.com/javase/7/docs/api/java/awt/geom/Area.html

Любые предложения или я должен попробовать diffrent подход?

ответ

3

Область имеет простой способ сделать это:

java.awt.geom.Area.intersect(Area) 

поэтому вы можете просто передать свой сегмент к этому методу и проверить, если результат равен предоставленный параметр.

+0

, который не поможет, когда линия выходит за пределы области (начальная и конечная точки линии находятся за пределами области, но линия все еще пересекается) – Thatdude1

+0

@ Thatdude1 Тогда возвращенная область не будет равна области ввода. Просто сделайте эту проверку позже. –

1

Вы можете использовать BasicStroke. Пропустите линию и погладьте Shape (например, толщину = 3), затем просто проверьте оригинал Area и пересечение положенной формы.

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