2012-01-12 14 views
-1

キャンバス上でマウスのクリックで作成された矩形であるclickRectangleがdrawnRectangleと交差するかどうかを調べようとしています。rect.intersectsを境界線の外側にチェックする方法

ただし、drawnRectangleのどこかをクリックすると(真四角形の内部)、intersectsメソッドがtrueを返すようにしたくありません。drawRectangleの外側境界がクリックされた場合にtrueを返すようにしてください。

どうすればいいですか?

P.S:clickRectangleとdrawnRectangleについては、以下の私のコメントを参照してください。

+0

をしたいです。どのようにして1つしか作っていないのですか? – corsiKa

+0

彼はポイントを意味すると思います。 – Perception

+0

私が意味するのは、マウスのクリックから矩形を作成し、それを中心にして、実際に描かれた矩形が交差しているかどうかをチェックする目に見えない四角形を内部的に作成することです。長方形の別名がないと、ここの混乱は更新されます.. clickRectangleは、マウスのクリックによって作成される矩形を参照します.. drawnRectangleは、交差をチェックしようとする実際の四角形を参照します。 – eytanfb

答えて

1

私が正しく質問を理解していれば、あなたは長方形が2回のクリックを取る必要があります

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

これは本当に助けになりました。私のコードに統合した後、必要なのはcontainsメソッドだけでした。もう一度おねがいします。大きな助け。 – eytanfb

関連する問題