어떻게 두 사각형 이 교차 하 는 지 판단 합 니까?
직사각형 이 1 대 점 으로 표현 된다 고 가정 하면 (minx, miny) (maxx, maxy) 두 개의 사각형 이다.
rect1{(minx1, miny1)(maxx1, maxy1)}
rect2{(minx2, miny2)(maxx2, maxy2)}
교차 결 과 는 반드시 직사각형 입 니 다. 이 교차 사각형 rect {(minx, miny) (maxx, maxy)} 을 구성 하 는 점 대 좌 표 는:
minx
=
max(minx1,
minx2)
miny
=
max(miny1,
miny2)
maxx
=
min(maxx1,
maxx2)
maxy
=
min(maxy1,
maxy2)
만약 에 두 사각형 이 교차 하지 않 으 면 계 산 된 점 은 좌표 에 만족 할 것 이다.
( minx
>
maxx) 혹은 (miny
>
maxy )
교차 여 부 를 판정 하고 교차 사각형 이 무엇 인지 이 방법 으로 하나 로 계산 하여 완성 할 수 있다.
이 알고리즘 의 결과 에서 우 리 는 아래 의 두 가지 내용 을 간단하게 생 성 할 수 있다.
교차 사각형: (minx, miny) (maxx, maxy)
2 면적: 면적 의 계산 은 판정 과 함께 할 수 있다. if ( minx>maxx ) return 0; if ( miny>maxy ) return 0; return (maxx-minx)*(maxy-miny)
두 번 째 방법
두 사각형 이 교차 하 는 조건: 두 사각형 의 중심 거 리 는 X 와 Y 축 에서 두 사각형 의 길이 나 너비 의 절반 의 합 보다 작다. 이렇게 두 번 으로 나 누 어 판단 하면 된다.
bool CrossLine(Rect r1,RECT r2)
{
if(abs((r1.x1+r1.x2)/2-(r2.x1+r2.x2)/2)<((r1.x2+r2.x2-r1.x1-r2.x1)/2) && abs((r1.y1+r1.y2)/2-(r2.y1+r2.y2)/2)<((r1.y2+r2.y2-r1.y1-r2.y1)/2))
return true;
return false;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.