Как сделать rect.intersects просто проверить внешние границы - PullRequest
0 голосов
/ 12 января 2012

Я пытаюсь определить, пересекается ли нарисованный прямоугольник clickRectangle, созданный щелчком мыши, с нарисованным прямоугольником.

Однако я не хочу, чтобы метод intersects возвращал true, если я щелкаю в любом месте нарисованного прямоугольника (т. Е. Внутри прямоугольника), я просто хочу, чтобы он возвращал true, если была нажата внешняя граница drawRectangle.

Как я могу это сделать?

P.S: Для clickRectangle и drawnRectangle см. Мой комментарий ниже.

1 Ответ

1 голос
/ 12 января 2012

Если я правильно понял вопрос, вы хотите

public static boolean pointNearEdge(Point click, Rectangle drawnRectangle, int howNear){
   Rectangle clickRect = new Rectangle(click.x-howNear, click.y-howNear, howNear*2, howNear*2);
   if (drawnRectangle.contains(clickRect))  // totally inside -> false
      return false;

   // test if there is a partial intersection - i.e. we are near the edge
   return drawnRectangle.intersects(clickRect);
}
...