본문으로 바로가기

아핀 결합 ( Affine Combination )

category Graphics/이론 2022. 12. 21. 17:10

아핀 공간 ( Affine Space )

기존의 벡터 공간은 이동하는 방향과 힘만 알 수 있었다.

즉, 벡터가 어디 위치에 있든 이동하는 방햑과 힘만 같으면 이 벡터들은 다 동일하다고 결정한다.

이 이동하는 방향과 힘에 '위치'라는 정보를 추가한 것이 아핀 공간이다.

아핀 공간에서의 위치 정보는 '점' 이라고 나타낸다.

아핀 공간은 점과 벡터를 구별하기 위해 마지막 요소에 1, 0 으로 구별을 하는데 

이는 동차 공간에서 가져온 개념이다.

즉. 아핀 공간은 동차 공간의 완벽한 서브셋이다.

 

좌표 (x, y)에 위치하는 점 P는 다음과 같이 나타낸다.

$$ P = (x, y, 1) $$

 

원점에서 좌표 (a, b)를 방향으로 가지는 벡터 V는 다음과 같이 나타낸다.

$$ V = (a, b, 0) $$

 

이를 조금 생각해보면, 벡터를 통해서 점 P를 이동시킬 수도 있다는 것을 알 수 있다.

(x, y, 1)(a, b, 0) 를 더한다고 해도 이는 (x + a, y + b, 1) 이므로, 동일한 '점' 이라는 것을 보장받는다.

이때의 이 점은 벡터 (a, b, 0)에 의해 이동된 점을 말한다.

 

이는 아핀 공간을 활용하는데 기초가 되는 특징이다.

아핀 공간의 점과 벡터는 다음과 같은 성질을 가진다.

  • 벡터와 벡터를 더하면 벡터다.
  • 점과 벡터를 더하면 점이다.
  • 점에서 점을 빼면 벡터다

하지만 점과 점을 더할 수 는 없다. 아핀 공간이 설정한 마지막 z의 값이 1을 넘어가기 때문이다.

 

정리하자면, 아핀 공간은 3차원 공간에서 z = 1인 다면에 존재하는 무수한 벡터 공간의 원점을 의미한다.

이는 이동 변환을 선형 변환으로 구현해야 하기 때문에 발생한 개념이라고 볼수 있다.

 

아핀 결합 ( Affine Combination )

아핀 공간에서 두 점을 더 한 결과는 사용할 수 없다. z가 1을 초과하기 때문이다.

하지만 점과 점을 더할 때 그대로 더하는 것이 아닌 선형 결합의 형태로 점에 스칼라를 곱해 더 한다면 특정 조건에서 새로운 점을 생성하는 것이 가능해진다.

 

두 점의 선형 결합 결과가 항상 점이 되려면 z의 값이 항상 1이 되어야 한다.

이를 유지하면 점과 점을 결합해 새로운 점을 만들 수 있다.

이렇게 '여러개의 점' 을 결합하여 새로운 점을 생성하는 수식을 '아핀 결합' 이라고 한다.

 

두 점의 결합

점 P1과 점 P2에 임의의 스칼라 a, b를 곱한 선형 결합 식을 알아보자

 

$$a \cdot P_{1} + b \cdot P_{2} = (ax_{1} + bx_{2}, ay_{1} + by_{2}, a+b) $$

 

이 식 의 선형 결합 결과가 항상 점이 되려면 마지막 a + b 의 값이 1이 되어야 한다.

x, y의 값과는 무관하게 a + b = 1의 조건을 유지한다면 점과 점을 결합해 새로운 점을 만들 수 있다.

이를 유지하기 위해 a를 우측으로 넘겨 b = 1 - a 라는 하나의 식을 얻어내자

 

그리고 이를 통해서 위의 식을 다시 정리한다.

 

$$ a \cdot P_{1} + (1-a)\cdot P_{2} = P' $$

 

이제 정리된 값을 가지고, 스칼라 a의 값의 변화에 따라 점들이 어떻게 생성되는지 관찰해보자.

 

a에 1을 대입하게 되면 점 P1이 생성된다.

 

$$1 \cdot P_{1} + 0\cdot P_{2} = P_{1} $$

 

a에 0을 대입하면 점 P2가 생성된다.

 

$$ 0 \cdot P_{1} + 1\cdot P_{2} = P_{2} $$

 

a 에 0.5를 대입하면 P1과 P2의 중점이 만들어진다.

 

$$ \frac{1}{2} \cdot (x_{1}, y_{1}, 1) + \frac{1}{2}\cdot (x_{2}, y_{2}, 1) =
\left(
\frac{x_{1} + x_{2}}{2},
\frac{y_{1} + y_{2}}{2},
1
\right)$$

 

두 점 P1과 P2의 아핀 결합을 통해 새로운 점을 생성하면, a 값이 양의 방향으로 커질수록 P1의 바깥쪽 방향에 점이 생성되고, a 값이 음의 방향으로 커질수록 P2의 바깥족 방향에 점이 생성된다. 이러한 규칙을 시각화해보면 아핀 결합으로 생성되는 모든 점을 모으면 P1과 P2를 지나는 무한한 긴 선이 만들어질 것이다.

 

 

세 점의 결합

위에서 아핀 결합식에 사용하는 스칼라의 계수에 따라서 다양한 종류의 선을 만들 수 있음을 살펴봤다.

그렇다면 세 점을 결합하는 경우에는 어떻게 될 까?

세 점의 스칼라의 합은 1이 되어야 하므로 아핀 결합 식은 다음과 같이 전개된다.

 

$$ P' s = s \cdot P_{1} + t \cdot P_{2} + (1 - s - t) \cdot P_{3} $$

 

위에서 두 점의 결합으로는 선분에 존재하는 모든 점을 만들어낼 수 있었다.

따라서 세 점의 아핀 결합은 평면의 모든 점을 만들어 낸다.

이 때, s 와 t의 값을 [0, 1]로 고정시키면 해당 영역은 삼각형이 된다.

 

 

아핀 결합식에서 스칼라 값을 [0, 1] 범위로 제한하면 시작과 끝의 범위가 명확해지므로 선분과 동일하게 그릴 수 있는 도형이 만들어 진다. 이렇게 아핀 결합에서 모든 스칼라 값을 [0, 1] 범위로 한정한 결합을 컨벡스 결합 ( Convex combination ) 이라고 부른다.

 

이렇게 컨벡스 결합으로 만든 영역을 컨벡스 영역 ( Convex region ) 이라고 한다. 

컨벡스는 '볼록한' 이라는 뜻인데, 수학에서는 볼록함이란 임의의 두 점을 연결한 선분을 만들었을 때 그 선분은 언제나 영역 안에 속한다는 뜻이다.

 

 

반대로 오목한 모양은 컨케이브 ( Concave ) 라고 한다. 선분이 영역 밖으로 벗어남을 뜻한다.