아핀 공간 ( 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 ) 라고 한다. 선분이 영역 밖으로 벗어남을 뜻한다.
'Graphics > 이론' 카테고리의 다른 글
삼각함수 (1) | 2023.07.20 |
---|---|
픽셀화 ( Rasterization ) (1) | 2022.12.28 |
원근 투영 변환 - 깊이값( Perspective projection transformation - Depth ) (1) | 2022.11.17 |
원근 투영 변환 ( Perspective projection transformation ) (4) | 2022.11.14 |
뷰 변환 ( View Transformation, Camera Transformation ) (0) | 2022.11.08 |