如何让rect.intersects检查外部边界

时间:2012-01-12 03:24:02

标签: java user-interface intersection

我正在尝试确定clickRectangle(一种由鼠标点击创建的矩形)是否与drawRectangle相交。

但是,如果我单击drawnRectangle中的任何位置(即矩形的内部),我不希望intersects方法返回true,如果单击了drawRectangle的外边界,我只希望它返回true。

我该怎么做?

P.S:对于clickRectangle和drawnRectangle,请参阅下面的评论。

1 个答案:

答案 0 :(得分:1)

如果我正确理解了这个问题,你想要

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);
}