Jump to content

Homogeneous coordinates

This is a fully translated article. Click here for more information.
From DawoumWiki, the free Mathematics self-learning
Rational Bézier curve – polynomial curve defined in homogeneous coordinates (blue) and its projection on plane – rational curve (red)

수학(mathematics)에서, 동차 좌표(homogeneous coordinates) 또는 투영 좌표(projective coordinates)는, 아우구스트 페르디난트 뫼비우스(August Ferdinand Möbius)에 의해 1827년 그의 연구 Der barycentrische Calcul에서 도입되었으며,[1][2][3] 데카르트 좌표(Cartesian coordinates)유클리드 기하학(Euclidean geometry)에서 사용되는 것처럼 투영 기하학(projective geometry)에서 사용되는 좌표의 시스템(system of coordinates)입니다. 그것들은 무한대에서 점(points at infinity)을 포함하여 점의 좌표가 유한 좌표로 표현될 수 있다는 장점을 가집니다. 동차 좌표를 포함하는 형식은 데카르트 짝보다 종종 더 간단하고 더 대칭적입니다. 동차 좌표는 컴퓨터 그래픽(computer graphics)과 3D 컴퓨터 비전(computer vision)을 포함하여 다양한 응용 분야를 가지며, 여기서 그것들은 아핀 변환(affine transformations)과, 일반적으로, 투영 변환(projective transformations)을 행렬에 의해 쉽게 표현되는 것을 허용합니다.

점의 동차 좌표에 비-영 스칼라를 곱하면 결과 좌표는 같은 점을 나타냅니다. 동차 좌표는 무한대에서 점에도 주어지기 때문에, 이 확장을 허용하는 데 필요한 좌표의 숫자는 고려 중인 투영 공간(projective space)의 치수보다 하나 더 많습니다. 예를 들어, 투영 직선 위의 한 점을 지정하기 위해서는 2 개의 동차 좌표가 필요하고, 투영 평면에서 점을 지정하기 위해 3 개의 동차 좌표가 필요합니다.

Introduction

실수 투영 평면(real projective plane)무한대에서 점(points at infinity)이라고 불리는 더해진 추가적인 점을 갖는 유클리드 평면(Euclidean plane)으로 생각될 수 있고, 무한대에서 직선(line at infinity)인 새로운 직선 위에 놓이는 것으로 고려됩니다. 각 방향에 해당하는 무한대에서 점이 있으며 (직선의 기울기에 의해 수치적으로 제공됨), 비공식적으로 원점에서 멀어지는 해당 방향으로 이동하는 점의 극한으로 정의됩니다. 유클리드 평면에서 평행 직선은 그것들의 공통 방향에 해당하는 무한대에서 점에서 교차한다고 말합니다. 유클리드 평면 위에 점 (x, y)가 주어지면, 임의의 비-영 실수 Z에 대해, 세-쌍 (xZ, yZ, Z)은 그 점에 대한 동차 좌표의 집합(set of homogeneous coordinates)이라고 불립니다. 이 정의에 의해, 3 개의 동차 좌표에 비-영 공통 인수를 곱하면 같은 점에 대한 새로운 동차 좌표의 집합을 제공합니다. 특히, (x, y, 1)는 점 (x, y)에 대한 동차 좌표의 시스템입니다. 예를 들어, 데카르트 점 (1, 2)는 동차 좌표에서 (1, 2, 1) 또는 (2, 4, 2)로 나타낼 수 있습니다. 원래 데카르트 좌표는 처음 두 위치를 세 번째 위치로 나눔으로써 복구됩니다. 따라서 데카르트 좌표와 달리, 단일 점은 무한하게 많은 동차 좌표에 의해 표현될 수 있습니다.

원점 (0, 0)을 통과하는 직선의 방정식은 nx + my = 0으로 쓸 수 있으며, 여기서 nm은 둘 다 0이 아닙니다. 매개변수(parametric) 형식에서, 이것은 x = mt, y = −nt로 쓸 수 있습니다. Z = 1/t라고 놓으므로, 직선 위의 한 점의 좌표는 (m/Z, −n/Z)로 쓸 수 있습니다. 동차 좌표에서, 이것은 (m, −n, Z)가 됩니다. 극한에서, t가 무한대에 가까워질수록, 다시 말해서, 점이 원점에서 멀어질수록, Z는 0에 가까워지고 점의 동차 좌표는 (m, −n, 0)이 됩니다. 따라서 우리는 (m, −n, 0)을 직선 nx + my = 0의 방향에 해당하는 무한대에서 점의 동차 좌표로 정의합니다. 유클리드 평면의 임의의 직선은 원점을 통과하는 직선과 평행하기 때문에, 그리고 평행 직선은 무한대에서 같은 점을 가지기 때문에, 유클리드 평면의 모든 직선 위의 무한대 점은 동차 좌표가 주어집니다.

요약하자면:

  • 투영 평면에서 임의의 점은 점의 동차 좌표 또는 투영 좌표라고 불리는 세-쌍 (X, Y, Z)에 의해 표시되며, 여기서 X, Y, 및 Z는 모두 0이 아닙니다.
  • 주어진 동종 좌표의 집합에 의해 표현되는 점은 좌표에 공통 인수를 곱하면 변경되지 않습니다.
  • 반대로, 동차 좌표의 두 집합이 같은 점을 표현하는 것과 모든 좌표에 같은 비-영 상수를 곱하여 하나가 다른 하나로부터 얻어지는 것은 필요충분 조건입니다.
  • Z가 0이 아닐 때, 표시된 점은 유클리드 평면에서 점 (X/Z, Y/Z)입니다.
  • Z가 0일 때, 표시된 점은 무한대에서 점입니다.

세-쌍 (0, 0, 0)이 생략되고 어떤 점도 나타내지 않습니다. 유클리드 평면의 원점(origin)(0, 0, 1)에 의해 표시됩니다.[4]

Notation

일부 저자는 데카르트 좌표와 동차 좌표를 구별하는 데 도움이 되는 동종 좌표에 대해 다른 표기법을 사용합니다. 예를 들어 (x, y, z) 대신 (x:y:z)와 같이 쉼표 대신 콜론을 사용하면 좌표가 비율로 고려되어야 함을 강조합니다.[5] [x, y, z]에서 처럼, 대괄호는 여러 좌표의 집합이 단일 점과 결합되어 있음을 강조합니다.[6] 일부 저자는 [x:y:z]와 같이 콜론과 대괄호를 조합하여 사용합니다.[7]

Other dimensions

이전 섹션에서 논의는 평면 이외의 투영 공간에 유사하게 적용됩니다. 따라서 투영 직선(projective line) 위의 점은 좌표 쌍(x, y)으로 표시될 수 있으며, 둘 다 0이 아닙니다. 이 경우에서, 무한대에서 점은 (1, 0)입니다. 유사하게 투영 n-공간에서 점은 (n + 1)-튜플에 의해 표현됩니다.[8]

Other projective spaces

실수(real numbers)의 사용은 실수 투영 공간의 고전적인 경우에서 점의 동차 좌표를 제공하며, 어쨌든 임의의 필드가 사용될 수 있으며, 특히 복소수(complex numbers)복소 투영 공간(complex projective space)에 사용될 수 있습니다. 예를 들어, 복소 투영 직선(complex projective line)은 두 개의 동차 복소 좌표를 사용하고 리만 구(Riemann sphere)로 알려져 있습니다. 유한 필드(finite fields)를 포함한 다른 필드가 사용될 수 있습니다.

투영 공간에 대해 동차 좌표는 역시 나눗셈 링(division ring, 스큐 필드)의 원소와 함께 생성될 수 있습니다. 어쨌든, 이 경우에서, 곱셈이 교환적(commutative)이지 않을 수 있다는 사실을 고려해야 합니다.[9]

일반적인 링(ring) A에 대해, A에 걸쳐 투영 직선은 왼쪽에 작용하는 동차 인수와 오른쪽에 작용하는 투영 선형 그룹(projective linear group)으로 정의될 수 있습니다.

Alternative definition

실수 투영 평면의 또 다른 정의는 동치 클래스(equivalence classes)의 관점에서 제공될 수 있습니다. R3의 비-영 원소에 대해, (x1, y1, z1) ~ (x2, y2, z2)(x1, y1, z1) = (λx2, λy2, λz2)이 되도록 비-영 λ가 있음을 의미하기 위해 정의합니다. 그런-다음 ~는 동치 관계(equivalence relation)이고 투영 평면은 R3 ∖ {0}의 동치 클래스로 정의될 수 있습니다. 만약 (x, y, z)가 동치 클래스 p의 원소 중 하나이면, 이것들은 p의 동차 좌표로 취합니다.

이 공간에서 직선은 ax + by + cz = 0 형식의 방정식의 해 집합으로 정의되며, 여기서 a, b,c가 모두 영은 아닙니다. 조건 ax + by + cz = 0의 만족은 (x, y, z)의 동치 클래스에만 의존하므로, 그 방정식은 투영 평면에서 점의 집합을 정의합니다. 매핑 (x, y) → (x, y, 1)은 유클리드 평면에서 투영 평면으로의 포함을 정의하고 이미지의 여집합은 z = 0을 갖는 점의 집합입니다. 방정식 z = 0은 투영 평면에 있는 직선의 방정식이고 (see definition of a line in the projective plane), 무한대에서 직선(line at infinity)이라고 불립니다.

동치 클래스 p는 제거된 원점을 갖는 원점을 통과하는 직선입니다. 원점은 이전 논의에서 실제로 중요한 역할을 하지 않으므로 투영 평면의 속성 변경 없이 다시 더할 수 있습니다. 이것은 정의에 대한 변형을 생성하며, 즉, 투영 평면은 원점을 통과하는 R3에서 직선의 집합으로 정의되고 직선의 비-영 원소의 좌표 (x, y, z)는 직선의 동차 좌표로 취합니다. 이들 직선은 이제 투영 평면에서 점으로 해석됩니다.

다시 말하지만, 이 논의는 다른 차원에도 유사하게 적용됩니다. 따라서 차원 n의 투영 공간은 Rn+1에서 원점을 통과하는 직선의 집합으로 정의될 수 있습니다.[10]

Homogeneity

동차 좌표는 점에 의해 고유하게 결정되지 않으므로, 좌표 위에 정의된 함수, 말하자면 f(x, y, z)는 데카르트 좌표와 같이 점 위에 정의된 함수를 결정하지 않습니다. 그러나 곡선을 설명하는 데 사용될 수 있는 좌표에 정의된 조건 f(x, y, z) = 0은 함수가 동차이면 점에 대한 조건을 결정합니다. 구체적으로, 다음을 만족하는 k가 있다고 가정합니다:

만약 좌표 집합이 (x, y, z)와 같은 점을 나타내면 그것이 어떤 비-영 λ의 값에 대해 x, λy, λz)로 쓸 수 있습니다. 그런-다음

차수 k다항식(polynomial) g(x, y)xx/z로, yy/z로 바꾸고 zk를 곱함으로써, 다시 말해서 다음과 같이 정의함으로써 동차 다항식(homogeneous polynomial)으로 바뀔 수 있습니다:

결과 함수 f다항식(polynomial)이므로, 그 도메인을 z = 0인 세-쌍으로 확장하는 것이 합리적입니다. 그 과정은 z = 1로 설정함으로써, 또는 다음과 같이 되돌릴 수 있습니다:

방정식 f(x, y, z) = 0g(x, y) = 0의 동차 형식으로 생각될 수 있고 유클리드 평면으로 제한될 때 같은 곡선을 정의합니다. 예를 들어, 직선 ax + by + c = 0의 방정식의 동차 형식은 ax + by + cz = 0입니다.[11]

Line coordinates and duality

투영 평면에서 직선의 방정식은 sx + ty + uz = 0로 주어질 수 있으며, 여기서 s, t, 및 u는 상수입니다. 각 세-쌍 (s, t, u)는 직선을 결정하고, 결정된 직선은 만약 그것이 비-영 스칼라와 곱해지면 변경되지 않고, s, t, 및 u 중 적어도 하나는 비-영이어야 합니다. 따라서 세-쌍 (s, t, u)는 투영 평면에 있는 직선의 동차 좌표, 즉 점 좌표와 반대되는 직선 좌표(line coordinates)로 취할 수 있습니다. 만약 sx + ty + uz = 0에서 문자 s, t, 및 u가 변수로 취해지고 x, y, 및 z가 상수로 취해지면, 그 방정식은 평면에서 모든 직선의 공간에서 직선의 집합의 방정식이 됩니다. 기하학적으로, 그것은 점 (x, y, z)을 통과하는 직선의 집합을 나타내고 직선-좌표에서 점의 방정식으로 해석될 수 있습니다. 같은 방법으로, 3-공간에서 평면은 4 개의 동차 좌표의 집합으로 주어질 수 있고, 더 높은 차원에 대해서도 마찬가지입니다.[12]

같은 관계, sx + ty + uz = 0는 직선의 방정식 또는 점의 방정식으로 여길 수 있습니다. 일반적으로, 점과 직선의 동차 좌표 사이에는 대수적으로 또는 논리적으로 차이가 없습니다. 따라서 점을 기본 원소로 갖는 평면 기하학과 직선을 기본 원소로 갖는 평면 기하학은 해석을 제외하면 동등합니다. 이것은 투영 기하학에서 이중성(duality)의 개념으로 이어지며, 점과 직선의 역할이 투영 기하학의 정리에서 서로 바뀔 수 있고 그 결과도 정리가 될 것이라는 원리입니다. 유사하게, 투영 3-공간에서 점의 이론은 투영 3-공간에서 평면의 이론과 이중적이고, 더 높은 차원에 대해서도 마찬가지입니다.[13]

Plücker coordinates

투영 3-공간에서 직선에 좌표를 지정하는 것은 직선 위에 놓이는 두 점의 좌표 또는 그들의 교차가 직선인 두 평면 위에 놓이는 두 점의 좌표, 총 8개의 좌표가 필요한 것처럼 보이기 때문에 더 복잡합니다. 율리우스 플뤼커(Julius Plücker)로 기인한 유용한 방법은 직선 위의 두 점 (x1, x2, x3, x4)(y1, y2, y3, y4)의 동차 좌표에서 판별식 xiyjxjyi (1 ≤ i < j ≤ 4)으로 여섯 좌표의 집합을 생성합니다. 플뤼커 삽입(Plücker embedding)은 차원 n의 투영 공간에서 임의의 차원 m의 원소의 동차 좌표를 생성하기 위해 이를 일반화합니다.[14][15]

Application to Bézout's theorem

베주의 정리(Bézout's theorem)는 두 곡선의 교차점의 숫자가 그것들의 각도의 곱과 같다고 예측합니다 (대수적으로 닫힌 필드를 가정하고 교차 중복도를 세는 데 따르는 특정 규칙이 있습니다). 베주의 정리는 두 직선의 교차점 하나가 있다고 예측하고 일반적으로 이것은 참이지만, 직선이 평행할 때 교차점은 무한합니다. 동차 좌표가 이 경우에서 교차점을 위치를 지정하기 위해 사용됩니다. 유사하게, 베주의 정리는 직선이 두 점에서 원뿔형과 교차할 것이라고 예측하지만, 어떤 경우에서 두 점 중 하나 또는 둘 모두가 무한하고 동차 좌표는 그것들 위치를 지정하기 위해 사용되어야 합니다. 예를 들어, y = x2x = 0은 유한 (아핀) 평면에서 교차점이 하나뿐입니다. 다른 교차점을 찾기 위해, 방정식을 동차 형식, yz = x2x = 0으로 변환합니다. 이것은 x = yz = 0를 생성하고, 모든 x, y, 및 z가 0이 아니라고 가정하여, 그 해는 x = y = 0, z ≠ 0x = z = 0, y ≠ 0입니다. 이 첫 번째 해는 데카르트 좌표, 유한 교차점에서 점 (0, 0)입니다. 두 번째 해는 y-축의 방향에 해당하는 동차 좌표 (0, 1, 0)을 제공합니다. 방정식 xy = 1x = 0에 대해, 유한 교차점이 없습니다. 그 방정식을 동차 형식으로 변환하면 xy = z2x = 0을 제공합니다. 풀면 z = 0에서 이중근을 가지는 방정식 z2 = 0을 생성합니다. 원래 방정식에서, x = 0이므로, 적어도 하나의 좌표가 비-영이기 때문에 y ≠ 0입니다. 그러므로, (0, 1, 0)은 그 정리와 일치하여 중복도 2로 세는 교차점입니다.[16]

Circular points

실수 또는 복소수 투영 평면에서 원의 방정식에 대해 동차 형식은 x2 + y2 + 2axz + 2byz + cz2 = 0입니다. 이 곡선과 무한대에서 직선의 교차점은 z = 0으로 설정함으로써 찾을 수 있습니다. 이것은 복소수에 걸쳐 두 해를 가지는 x2 + y2 = 0 방정식을 생성하며, 복소 투영 평면에서 동차 좌표 (1, i, 0)(1, −i, 0)을 갖는 점을 발생시킵니다. 이들 점은 무한대에서 원형 점(circular points at infinity)이라고 불리고 모든 원의 공통 교차점으로 여길 수 있습니다. 이것은 원형 대수적 곡선(circular algebraic curves)으로 더 높은 차수의 곡선으로 일반화될 수 있습니다.[17]

Change of coordinate systems

데카르트 좌표 시스템에서 축의 선택이 다소 임의적인 것처럼, 모든 가능한 시스템 중에서 동차 좌표의 단일 시스템의 선택은 역시 다소 임의적입니다. 그러므로, 서로 다른 시스템이 서로 어떻게 관련되어 있는지 아는 것이 유용합니다.

(x, y, z)를 투영 평면에 있는 점의 동차 좌표라고 놓습니다. 비-영 행렬식(determinant)을 갖는 다음 고정된 행렬은 다음 방정식에 의해 새로운 좌표의 시스템 (X, Y, Z)를 정의합니다: 스칼라에 의한 (x, y, z)의 곱셈은 같은 스칼라에 의한 (X, Y, Z)의 곱셈을 초래하고, X, Y, 및 Zx, y, 및 z가 모두 영이 아닌 한 모두 0이 될 수 있는데 왜냐하면 A가 비-특이점이기 때문입니다. 따라서 (X, Y, Z)는 투영 평면의 같은 점에 대해 동차 좌표의 새로운 시스템입니다.

Barycentric coordinates

동차 좌표의 뫼비우스의 원래 형식화는 고정된 삼각형의 꼭짓점에 배치된 3 점 질량 시스템의 질량의 중심(center of mass, 또는 베리센터)으로 점의 위치를 지정했습니다. 삼각형 내의 점은 양의 질량에 의해 표시되고 삼각형 외부의 점은 음의 질량을 허용함으로써 표시됩니다. 그 시스템에서 질량에 스칼라를 곱하는 것은 질량 중심에는 영향을 미치지 않으므로, 동차 좌표의 시스템의 특수한 경우입니다.

Trilinear coordinates

l, m, n을 평면에서 세 직선이라고 놓고 p에서 이들 세 직선까지의 부호화된 거리로 점 p의 좌표의 집합 X, Y, 및 Z를 정의합니다. 이것들은 꼭짓점이 직선의 쌍-별 교차점인 삼각형에 관한 p삼선형 좌표(trilinear coordinates)라고 불립니다. 엄밀히 말하면, X, Y, 및 Z의 값이 단지 비례성까지가 아니라 정확히 결정되기 때문에 이들은 동차가 아닙니다. 어쨌든, 그들 사이에는 선형 관계가 있으므로 이들 좌표는 (X, Y, Z)의 배수를 같은 점을 나타내도록 허용함으로써 동차로 만들 수 있습니다. 보다 일반적으로, X, Y, 및 Z는 상수 p, r, 및 ql, m, 및 n까지의 거리를 곱한 값으로 정의될 수 있으며, 그 결과 같은 참조의 삼각형을 갖는 서로 다른 동차 좌표의 시스템을 초래합니다. 이것은, 사실, 어떤 직선도 무한대에서 직선이 아니면 평면에서 점에 대한 동차 좌표 시스템의 가장 일반적인 유형입니다.[18]

Use in computer graphics and computer vision

동차 좌표는 컴퓨터 그래픽에서 어디에나 존재하는데 왜냐하면 그것들은 벡터가 곱해지는 행렬로 표현되는 평행이동(translation), 회전(rotation), 스케일링(scaling), 및 원근 투영(perspective projection)과 같은 공통적인 벡터 연산을 허용하기 때문입니다. 체인 규칙에 의해, 그러한 연산의 임의의 열은 단일 행렬로 곱할 수 있으며, 간단하고 효율적인 처리를 허용합니다. 대조적으로, 데카르트 좌표를 사용하여, 평행이동과 원근 투영은 행렬 곱셈으로 표현될 수 없지만, 다른 연산은 가능합니다. 최신 OpenGLDirect3D 그래픽 카드는 동차 좌표의 이점을 4-요소 레지스터를 갖는 벡터 프로세서를 사용하여 버텍스 셰이더를 효율적으로 구현하기 위해 사용합니다.[19][20]

예를 들어, 원근 투영에서, 공간에서 위치는 그것에서 투영의 중심(center of projection)이라고 불리는 고정된 점으로의 직선과 결합됩니다. 그 점은 그런 다음 해당 평면과 직선의 교차점을 찾음으로써 평면에 매핑됩니다. 이것은 통해 삼-차원 물체가 눈에 어떻게 보이는지 정확하게 표현할 수 있습니다. 가장 단순한 상황에서, 투영의 중심은 원점이고 점은 평면 z = 1에 매핑되며, 그 순간에 대해 데카르트 좌표에서 작동합니다. 공간에서 주어진 점, (x, y, z)에 대해, 직선과 평면이 교차하는 점은 (x/z, y/z, 1)입니다. 이제 불필요한 z 좌표를 버리면, 이것은 (x/z, y/z)가 됩니다. 동차 좌표에서, 점 (x, y, z)(xw, yw, zw, w)에 의해 표시되고 평면 위에 매핑되는 점은 (xw, yw, zw)에 의해 표시되므로, 투영은 다음과 같이 행렬 형식에서 나타낼 수 있습니다: 다른 기하학적 변환을 나타내는 행렬은 행렬 곱셈에 의해 이것과 서로 결합될 수 있습니다. 결과로써, 공간의 임의의 원근 투영은 단일 행렬로 나타낼 수 있습니다.[21][22]

Notes

  1. ^ August Ferdinand Möbius: Der barycentrische Calcul, Verlag von Johann Ambrosius Barth, Leipzig, 1827.
  2. ^ O'Connor, John J.; Robertson, Edmund F., "August Ferdinand Möbius", MacTutor History of Mathematics archive, University of St Andrews.
  3. ^ Smith, David Eugene (1906). History of Modern Mathematics. J. Wiley & Sons. p. 53.
  4. ^ For the section: Jones 1912, pp. 120–122
  5. ^ Woods 1922
  6. ^ Garner 1981
  7. ^ Miranda 1995
  8. ^ Bôcher 1907, pp. 13–14
  9. ^ Garner 1981, pp. 32–33
  10. ^ For the section: Cox, Little & O'Shea 2007, pp. 360–362
  11. ^ For the section: Miranda 1995, p. 14 and Jones 1912, p. 120
  12. ^ Bôcher 1907, pp. 107–108 (adapted to the plane according to the footnote on p. 108)
  13. ^ Woods 1922, pp. 2, 40
  14. ^ Wilczynski 1906, p. 50
  15. ^ Bôcher 1907, p. 110
  16. ^ Jones 1912, pp. 117–118, 122 with simplified examples.
  17. ^ Jones 1912, p. 204
  18. ^ Jones 1912, pp. 452 ff
  19. ^ "Viewports and Clipping (Direct3D 9) (Windows)". msdn.microsoft.com. Retrieved 10 April 2018.
  20. ^ Shreiner, Dave; Woo, Mason; Neider, Jackie; Davis, Tom; "OpenGL Programming Guide", 4th Edition, ISBN 978-0-321-17348-5, published December 2004. Page 38 and Appendix F (pp. 697-702) Discuss how OpenGL uses homogeneous coordinates in its rendering pipeline. Page 2 indicates that OpenGL is a software interface to graphics hardware.
  21. ^ Mortenson, Michael E. (1999). Mathematics for Computer Graphics Applications. Industrial Press Inc. p. 318. ISBN 0-8311-3111-X.
  22. ^ McConnell, Jeffrey J. (2006). Computer Graphics: Theory into Practice. Jones & Bartlett Learning. p. 120. ISBN 0-7637-2250-2.

References

Further reading

External links