교차로
선
의 교차점
<코드>a1, b1
, c1
- 첫 번째 줄의 계수,
a2
, b2
, c2
- 두 번째 줄의 계수
x
, y
- 교차점.
\(x = {-(c1 \cdot b2 - c2 \cdot b1) \over (a1 \cdot b2 - a2 \cdot b1)} \\ y = {-(a1 \ cdot c2 - a2 \cdot c1) \over (a1 \cdot b2 - a2 \cdot b1)} \)
우리는 이미 선의 교차점(평행하지 않음)을 확인하고 교차점을 찾는 방법을 알고 있습니다.
이제 세그먼트로 이를 수행하는 방법을 알아보겠습니다.
먼저 간단하게 교차점을 확인하는 방법을 알아보겠습니다.
세그먼트 교차 한쪽 끝이 다른 쪽 끝과 반대쪽에 있는 경우(이는 외적으로 쉽게 확인됨). 이것이 작동하지 않는 유일한 경우 - 세그먼트는 하나의 직선에 있습니다. 이를 위해 소위 교차점을 확인해야 합니다. 경계 상자(세그먼트의 경계 상자) - X
및 Y
에서 세그먼트 투영의 교차점을 확인합니다.
축.
이제 세그먼트에서 교차점을 확인하는 방법을 알았으니 교차점(또는 세그먼트)을 찾는 방법을 알아보겠습니다.
- 교차하지 않으면 그러한 점이 존재하지 않는다는 것이 분명합니다.
- 그렇지 않으면 이러한 세그먼트가 놓이는 직선을 구성합니다.
만약 그들이 평행하다면, 세그먼트는 같은 선상에 있고 우리는 세그먼트의 왼쪽 경계의 최대값에서 오른쪽 경계의 최소값까지의 교차 세그먼트를 찾아야 합니다. 점은 다른 점보다 작습니다. 왼쪽에 있는 경우 X
-좌표 - 더 낮은 경우).
선이 평행하지 않으면 교차점을 찾아 반환합니다.