2011-02-06 2 views
1

Microsoft.XNA.Framework.Rectangle 유형의 2D 직사각형이 있고 일정한 양만큼 회전 된 후에도 화면상의 점 ((x, y)로 정의 됨)이 통과하는지보고 싶습니까?점이 회전 된 사각형과 교차하는 경우 찾기?

+0

비슷한 질문이 여기에 게시됩니다 : http://stackoverflow.com/questions/1240660/check-if-a-point-is-in-a-rotated-rectangle-c 그것은 Windows 형태로되어 있지만 또한 적용됩니다. XNA. – Marking

답변

3

회전 다음 테스트는 간단하게 : 당신은 사각형의 회전을 모르는 경우

is rect.left <= point.x <= rect.right, is rect.bottom <= point.y <= rect.top

, 당신이 그것을 파악할 수 삼각법으로 아웃.

+1

trig에 대한 추가 도움이 필요하면 알려주십시오. –

+0

내가 틀렸다면 정정 해주세요. 그러나 직사각형을 회전하는 방식으로 회전 된 사각형을 포함하는 새로운 사각형 내에서 교차점을 확인할 것입니다. 원하는 것은 회전 된 사각형의 교차점 만 확인하는 것입니다. – tweetypi

+0

사각형과 점을 모두 회전 시키면 "새로운 사각형"이 실제로 똑같은 사각형으로 잘 정렬되어 경계를 쉽게 확인할 수 있습니다. 이것이 어떻게 작동하는지 보려면 45도 각도로 직사각형을 그리십시오 (종이 위에). 이제 머리를 45도 기울이면 사각형이 더 이상 회전하지 않는 것처럼 보입니다. –

2

사각형과 점을 모두 회전 해제 한 다음 간단한 경계 검사로 점이 안쪽에 있는지 확인할 수 있습니까?

회전하지 않으면 직사각형의 가장자리 중 하나가 x 축에 정렬된다는 것을 의미합니다. 사각형이 X를 따라 & Y 축 정렬되도록 기원에 대한

관련 문제