3차원 유클리드 기하학에서는 두 선이 같은 평면에 있지 않으면 스큐선이라고 하며 교차점이 없다.만약 그것들이 같은 평면에 있다면, 세 가지 가능성이 있다: 만약 그것들이 일치한다면, 그들은 공통점이 있다. (명칭 그들 중 하나의 점들은) 그들은 공통점이 있다; 그것들이 구별되지만 같은 경사를 가지고 있다면, 그들은 평행하고 공통점이 없다; 그렇지 않으면 그들은 단일 교차점을 가지고 있다.
비유클리드 기하학의 구별되는 특징은 두 선 사이의 가능한 교차점의 수와 위치, 주어진 선과의 교차점(병렬선)이 없는 가능한 선들의 수이다.
두 선이 교차하는 데 필요한 조건은 두 선이 동일한 평면(즉, 기울어진 선이 아님)에 있다는 것이다.이 조건의 만족도는 한 선의 두 점에 정점이 있고 다른 선의 두 점에 정점이 있는 사면체(사면체)가 0의 체적을 갖는다는 의미에서 퇴보하는 것과 같다.이 조건의 대수적 형식은 Skew lines § 왜도 검정을 참조하십시오.
각 선에 2점 부여
First we consider the intersection of two lines and in 2-dimensional space, with line being defined by two distinct points and 및 }:{2 두 개의 구별되는 점 3,y ){\ ( 및( 4, 4) 에 의해 정의된다[1]
두 선이 평행하거나 일치할 때 분모는 0이다.선이 거의 평행하면 컴퓨터 솔루션은 위에서 설명한 솔루션을 구현하는 데 숫자적인 문제를 겪을 수 있다. 즉, 이 조건을 인식하려면 실제 적용에서 대략적인 시험이 필요할 수 있다.대안적인 접근방식은 선분할 중 하나가 수평이 되도록 선분할을 회전시켜 두 번째 선에서 회전된 파라메트릭 형태의 솔루션을 쉽게 구할 수 있다.특례(평행선/동일선, 겹침/과적 간격)에 대한 면밀한 논의가 필요하다.
각 선 세그먼트에서 두 점 지정
위의 교차점은 점 사이의 선 세그먼트가 아니라 점으로 정의되는 무한히 긴 선을 위한 것이며, 두 선 세그먼트 중 하나에 포함되지 않은 교차점을 생성할 수 있다는 점에 유의하십시오.선 세그먼트에 대한 교차점의 위치를 찾기 위해 L 및 }}선은 1도 베지어 파라미터로 정의할 수 있다.
(t와 u는 실제 숫자임)선의 교차점은 t 또는u의 다음 값 중 하나와 함께 발견된다.
그리고
다음 항목 포함:
0.0 ≤ t ≤ 1.0과 0.0 u u u 1.0이면 교차점이 생긴다.교차로 지점은 0.0 t t ≤ 1.0이면 첫 번째 선 세그먼트, 0.0 u u ≤ 1.0이면 두 번째 선 세그먼트 안에 들어간다.이러한 불평등은 분할할 필요 없이 시험할 수 있으며, 정확한 점을 계산하기 전에 어떤 선분할 교차점의 존재 여부를 신속하게 결정할 수 있다.[2]
두 개의 선 방정식 지정
두 비수직선의 교차점에 x y 좌표는 다음과 같은 대체와 재배열을 사용하여 쉽게 찾을 수 있다.
라인에 y= + 및 = + d 이(가) 있다고 가정합시다. 서 및 b}은 선의 기울기(경사)이며 c{\는 선의 y-절이다.두 선이 교차하는 지점(있는 경우)에서 y 좌표가 모두 동일하므로 다음과 같은 동일성이 있다.
값{\}을(를) 추출하기 위해 이 식을 다시 정렬할 수 있다
그래서,
y 좌표를 찾으려면 x의 값을 두 개의 선 방정식 중 하나로 대체하면 된다. 예를 들어, 첫 번째 방정식:
따라서 교차점은
a = b일 경우 두 선이 평행하다는 점에 유의하십시오.c ≠ d도 선이 다르고 교차점이 없으면 두 선이 동일하다.
균일한 좌표 사용
균일한 좌표를 사용하면 암묵적으로 정의된 두 선의 교차점을 꽤 쉽게 결정할 수 있다.In 2D, every point can be defined as a projection of a 3D point, given as the ordered triple . The mapping from 3D to 2D coordinates is . We can convert 2D points to homogeneous coordinates by defining them as ) .
+ + = 로 정의된 2차원 공간에서 두 개의 무한 선의 교차점을 찾기를 원한다고 가정해 보십시오. 및+ b + = }. We can represent these two lines in line coordinates as and ,
두 선의 교차점은 추가 선을 포함하도록 일반화할 수 있다.n라인 교차로 문제의 존재와 표현은 다음과 같다.
2차원으로
2차원에서, 두 개 이상의 선은 거의 확실히 단일 지점에서 교차하지 않는다.만약 그들이 하는 경우 그 교차점을 찾기 위해,[는 명확히 설명 1를 명확히 설명 2][)y]T=b나는,{\displaystyle{\begin{bmatrix}a_{i1}&, a_{i2}\end{bmatrix}}{\begin{bmatrix}x&, y\end{bmatrix}}^{\mathsf{T}로}=b_{나는},은i-th 방정식(나는 1, …,n원)를 쓰}과 matri에 그 공식을 쌓아 올리는지 판단하십시오.)형태로서
여기서 n × 2 행렬 A의 i번째 행은( 1, 2) w는 2 × 1 벡터(x, y)이고i,T 열 벡터 b의 i번째 요소는 b이다.A에 독립된 열이 있으면 그 등급은 2이다.그런 다음 증강 행렬[Ab]의 순위도 2인 경우에만 행렬 방정식의 해법이 존재하며 따라서 n개의 선들의 교차점이 존재한다.교차로 점(있는 경우)은 다음과 같이 지정된다.
여기서 a 는무어-펜로스가 A {\displaystyle 의 일반화된 역이다A가 전체 컬럼 순위를 가지기 때문에 표시되는 형식이 있음).또는 어떤 두 개의 독립 방정식을 공동으로 풀어서 해결책을 찾을 수 있다.그러나 A의 등급이 1에 불과할 경우, 증강 행렬의 등급이 2일 경우 해결책이 없지만, 등급이 1일 경우 모든 선이 일치한다.
3차원으로
위의 접근방식은 쉽게 3차원으로 확장할 수 있다.3개 이상의 차원에서는 두 개의 선이라도 거의 교차하지 않는다. 교차하지 않는 평행하지 않은 선 쌍을 꼬치선이라고 한다.그러나 교차로가 존재한다면 다음과 같이 찾을 수 있다.
3차원 선을 각각의 형태의 방정식[는 명확히 설명 1를 명확히 설명 2는 명확히 설명 3][)yz]T=b.{\displaystyle{\begin{bmatrix}a_{i1}& 2개의 비행기,의 교차점, a_{i2}&, a_{i3}\end{bmatrix}}{\begin{bmatrix}x&, y&, z\end{bmatrix}}^{\mathsf{T}}=b_로 표시됩니다.{나는}. 따라서n개의 선 세트는 3차원 좌표 벡터 w = (x, y, z)에서 2n 방정식으로 나타낼 수 있다.T
여기서 현재 A는 2n × 3이고 b는 2n × 1이다. A가 전체 열 순위를 가지고 있고 증강 행렬[Ab]이 없는 경우에만 전과 같이 고유한 교차점이 있으며, 존재하는 경우 고유 교차점이 주어진다.
While is not well-defined in more than two dimensions, this can be generalized to any number of dimensions by noting that is simply the (symmetric) matrix with all eigenvalues unity except for a zerp 사이의 거리에 세미놈을 제공하는 선을 따라가는 방향의 고유값과 선까지의 거리를 주는 또 다른 지점.임의의 치수에서 i 이(가) i번째 선을 따라 있는 단위 벡터인 경우
^Antonio, Franklin (1992). "Chapter IV.6: Faster Line Segment Intersection". In Kirk, David (ed.). Graphics Gems III. Academic Press, Inc. pp. 199–202. ISBN0-12-059756-X.