Quick Comparison
선형변환은 덧셈과 스칼라 곱을 보존합니다. 원점 주위의 회전·크기 변경은 선형변환이고, 0이 아닌 평행이동을 포함한 Ax+t는 아핀 변환입니다.
선형성: T(αu + βv) = αT(u) + βT(v)
선형변환: T(x) = Ax
아핀 변환: F(x) = Ax + t
선형변환은 T(0)=0
t≠0인 평행이동은 F(0)=t이므로 원래 공간에서 선형이 아님선형성 판별
덧셈 보존은 T(u+v)=T(u)+T(v), 스칼라 곱 보존은 T(αu)=αT(u)입니다. 모든 해당 벡터·스칼라에서 둘 다 성립해야 선형입니다. T(0)=0은 필요한 조건이지만 그것만으로 충분하지 않습니다. 예를 들어 실수 함수 T(x)=x²는 0을 0으로 보내지만 T(1+1)=4와 T(1)+T(1)=2가 달라 선형이 아닙니다.
평행이동 F(x)=x+t는 두 벡터를 따로 옮긴 뒤 더하면 t가 두 번 더해집니다. 이것이 원점을 옮기는 동작을 선형변환과 구분하는 이유입니다. t=0인 아핀 변환은 선형변환이므로 선형변환은 아핀 변환에 포함됩니다. 선형이라는 말은 그림에서 직선처럼 보인다는 뜻과도 다릅니다.
회전과 크기 변경 합성
오른손 xy 평면에서 반시계 90° 회전 R과 x축을 2배로 늘리는 S를 생각합니다. 열벡터 기준입니다.
R = [ 0 -1 ] S = [ 2 0 ] v = (1,1)
[ 1 0 ] [ 0 1 ]
Rv = (-1,1)
Sv = (2,1)
RSv = R(2,1) = (-1,2)
SRv = S(-1,1) = (-2,1)합성 결과도 선형변환이지만 순서에 따라 변환이 달라집니다. 회전을 먼저 적용하면 크기 변경이 작용하는 방향이 달라집니다. 행렬의 열로 기저가 어디에 갔는지 읽는 방법은 행렬 곱에 있습니다.
평행이동을 행렬 곱으로 표현
2차원 점 (x,y)에 성분 1을 붙여 (x,y,1)로 표현하면 이동까지 3×3 행렬로 계산할 수 있습니다. 이를 동차좌표 표현이라고 합니다. 3차원 그래픽스에서는 같은 방식으로 4×4 행렬을 사용합니다.
H = [ 1 0 3 ]
[ 0 1 1 ]
[ 0 0 1 ]
H(1,2,1) = (4,3,1) → 점은 (3,1)만큼 이동
H(1,2,0) = (1,2,0) → 방향에는 이동 성분이 적용되지 않음H를 확장된 좌표 공간에 곱하는 연산은 선형입니다. 그렇다고 원래 2차원 공간의 평행이동 F가 선형변환이 되는 것은 아닙니다. 원래 공간과 확장된 표현 공간을 구분합니다.
일반적인 아핀 행렬의 마지막 행은 2차원에서 [0,0,1], 3차원에서 [0,0,0,1]입니다. 원근 투영은 이 형태의 아핀 변환과 구분하며, 투영 후 w로 나누는 단계까지 고려해야 합니다.
위치·방향·법선의 경계
점은 이동의 영향을 받고 방향은 이동의 영향을 받지 않습니다. 법선은 표면에 수직이라는 관계를 유지해야 하므로 비균일 크기 변경에서 방향과 같은 행렬만 적용하면 문제가 생길 수 있습니다. 이동을 제외한 선형 부분 A가 가역이면 법선은 (A⁻¹)ᵀn으로 바꾼 뒤 정규화합니다. 이것은 표면과의 수직 관계를 보존하기 위한 조건입니다. 입력·셰이더의 연결은 OpenGL 법선과 조명에서 다룹니다.
다음 실무 연결은 Graphics 좌표 공간과 OpenGL 카메라·클립 공간입니다. 특정 API의 행렬 업로드 규칙을 수학의 선형성 정의로 혼동하지 않습니다.
선형 부분이 면적·부피와 방향을 얼마나 바꾸는지는 행렬식으로 읽고, 서로 수직인 축의 구성은 정규직교 기저와 연결합니다.
길이·각도를 보존하는 변환의 유도는 회전·반사와 축각, 법선에 다른 행렬이 필요한 이유는 역전치 유도에서 이어집니다.
점들을 섞는 가중치의 합과 변환·보간 순서의 관계는 아핀 결합과 선형 보간, 삼각형 안의 위치와 속성 계산은 무게중심좌표에서 이어집니다.
참고 링크
2 sources