Mathematics for CG

4. 점(Point)과 아핀 공간(Affine Space)

최 은 호 2022. 8. 2. 06:16

지금까지 크기와 방향에 대한 정보를 가지고 있는 벡터(Vector)에 대해 다루었는데, 벡터는 벡터 공간에 존재하며, 벡터 공간은 벡터들에 대한 공리 및 성질들이 정의되어 있었다.

 

이제 점(Point)이 정의되는 공간인 아핀 공간(Affine Space)에 대해 알아보자.

 

아핀 공간

먼저, 아핀 공간은 다음과 같이 정의된다.

V를 체 K 위에 벡터 공간, A를 비어 있지 않은 집합이라고 했을 때, 어떤 벡터 aV와 원소 pA에 대하여 p+aA를 만족하는 덧셈 연산이 정의되어 있다고 하자. 이 때, 벡터 공간 V와 연관된 아핀 공간 A는 다음 조건들을 만족한다.  

 

  1. p+0=p (항등원)
  2. (p+a)+b=p+(a+b) (결합 법칙)
  3. 어떤 qA에 대하여, q=p+a를 만족하는 고유한 벡터 aV가 존재한다.

말이 좀 어려운데, 아핀 공간은 점이 있는 집합이고 이 점에 더하여 다른 점들을 만들 수 있는 벡터들을 가진 벡터 공간과 함께 정의된다는 것을 기억하면 된다.

3번 식을 다시 보면, 점 p에 더하면 점 q를 만들 수 있는 고유한 벡터 a가 존재한다는 뜻이 된다.

q=p+a(=+)

이 식에서 점 p를 좌변으로 옮기면 점 q에서 점 p를 빼면 벡터 a를 만들 수 있다는 의미가 된다.

qp=a(=)

이와 같이, 우리가 사용해왔던 점과 벡터에 대한 연산들은 아핀 공간에 의해 정의된다. 점과 점의 덧셈 연산은 일반적으로 정의되지 않는다. (게임 내 두 캐릭터의 위치를 더해서 얻는 좌표는 아무 의미가 없다.)

 

이제 q=p+a 식에서 점 p를 원점이라고 생각해보자.

집합 A에서 임의의 원점 p를 선택하면 벡터 공간 V의 기저 vi들을 통해 점 q를 다음과 같이 나타낼 수 있다.

q=p+a0v0+a1v1+···+an1vn1

여기서 원점 p와 기저 쌍 (p,(v0,v1,...,vn1))을 좌표 프레임(Coordinate Frame)이라고 하며, 이 좌표 프레임을 기준으로 점 q의 고유한 좌표를 (a0,a1,...,an1)로 나타낼 수 있다. 

원점에 따른 점들의 상대적인 위치

우리는 집합 A에서 원점으로 어떤 점이든 선택할 수 있지만, 위 그림과 같이 공간 상 점들의 좌표는 원점과 기저를 어떻게 설정하는지에 따라 달라질 수 있다.

 

이제 식 q=p+a에서 원점 p0A로 놓아보자.

q=0+a=a

q와 벡터 a가 같아진 것을 볼 수 있다. 즉, 벡터 공간을 점 집합으로 간주하면 항상 점 0를 포함하므로 벡터 공간의 모든 벡터들을 점으로도 볼 수 있게 되며, 벡터 공간은 아핀 공간이 된다! 이러한 이유로 우리가 Rn 벡터 공간에서 점과 벡터를 같은 좌표로 표기할 수 있었던 것이다.

 

이번 장을 정리하면 다음과 같다.

  • 벡터 공간에 벡터가 존재하는 것과 같이, 아핀 공간은 점이 존재하는 공간이다.
  • 점의 좌표는 원점(O)과 기저 쌍 (O,(v0,v1,...,vn1))의 좌표 프레임을 기준으로 정의된다.
  • 벡터 공간은 아핀 공간으로 간주될 수 있으며, 이 공간에 있는 모든 요소들은 벡터 또는 점으로 볼 수 있다.

 

다음 글에서는 아핀 결합(Affine Combination)에 대해 알아보겠다.