2012-01-12 2 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

, 당신이 클릭을해야

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