Как узнать, содержит ли аффинно преобразованный прямоугольник определенную точку в Java?

Я пытаюсь создать интерактивный графический интерфейс, но мне нужно перемещать определенный объект всякий раз, когда этот прямоугольник щелкается + перетаскивается. В основном я хочу знать, содержит ли прямоугольник, который был аффинно преобразован, определенную точку (x, y). Есть ли способ сделать это? Я пытался использовать метод contains(), но он не работает для прямоугольника, подвергшегося аффинному преобразованию. Я проверил учебные пособия по Java, но пользовательские интерактивные графические интерфейсы не используют аффинное преобразование. Может ли кто-нибудь указать мне на учебник, который позволяет пользователю аффинно преобразовывать определенную форму, а также перемещать фигуру ТОЛЬКО при нажатии + перетаскивании самой формы. Если нет, то как я могу подойти к этому?

Спасибо.


person jNoob    schedule 27.07.2010    source источник
comment
просто сопоставьте свою точку (x, y) с помощью того же AffineTransform и сравните их.   -  person msw    schedule 27.07.2010
comment
но метод не будет работать и для аффинно-преобразованной точки, верно?   -  person Louis Rhys    schedule 27.07.2010


Ответы (1)


Этот пример показывает, что contains() работает должным образом с преобразованным Shape. В примере используется Polygon, но Rectangle также реализует Shape.

Если вместо этого преобразуется сам графический контекст, вам придется создать инверсию, «чтобы зафиксировать изменения, которые вы вносите в преобразование», как показано на этом пример.

person trashgod    schedule 27.07.2010