2017-10-12 7 views
0

나는 두 개의 주요 포인트 등으로 저장된리스트를 가지고있다. [[5,10],[10,15]], 그리고 나는 그것들이 모두 하나의 점에서 다른 점으로의 선과 교차한다는 것을 안다. 어떤 직사각형이 먼저 선과 교차하는지 찾는 방법?어떤 직사각형 라인이 먼저 닿는가

+0

라인 시작점의 'x'좌표와 그 하위 'x'좌표 간의 절대 차이가 가장 작은 값입니다. – Kasramvd

+1

종류는 다르지만 줄이 거꾸로 올라가거나 올라가는 경우 –

+0

먼저 줄의 방향을 지정하지 않고 좌표계의 중심이 무엇인지 먼저 무엇을 의미하는지에 따라 달라집니다. 또한, 직사각형을 수직 정렬 할 때처럼 두 직사각형의 차이가 같을 경우에도 수직으로 이동하는 경우 'y'의 차이를 확인할 수 있습니다. – Kasramvd

답변

1

선 (두 포인트에 의해 정의 된) 파라미터의 방정식을 가진다

X = X0 + t * (X1 - X0) 
Y = Y0 + t * (Y1 - Y0) 

대체 좌우 (라인 방향)에 따라 직사각형 에지가 제 방정식 상단 또는 우측 좌표 좌표 - 제 식 찾아 모서리와 교차를 제공하는 매개 변수 t의 최소값.

예를 들어 첫 번째 수식에서 직사각형의 왼쪽 모서리에 대해 tl 값을 가져옵니다. 이 tl 값에 대한 Y 값을 두 번째 방정식에서 찾아 Ytop..bottom 범위에 있는지 확인하십시오.

사각형 위치 및 크기에 대한 추가 제한 사항이나 정보가 있습니까? 사각형을 일정하게 설정하고 많은 선을 사용합니까? 또는 선이 일정하고 직사각형 세트가 있습니까?

+0

쓰려고했다. 'X1-X0' 또는'Y1-Y0'이 0이거나 0에 아주 가깝다면 (수직선과 수평선) 조심해야합니다. 게다가 사각형이 가장 겹치지 않으면 첫 번째 점에 가장 가까운 모서리를 가진 점이 승자가됩니다. 그러나 나는 완전히 확신하지 못합니다. 이것들은 축 정렬 된 직사각형이므로 교차점을 찾는 것만으로도 빠릅니다. – jdehesa

관련 문제