벡터의 외적(cross product)은 주로 3차원 벡터에서 정의되는 연산으로, 두 벡터로부터 새로운 벡터를 만들어내는 연산입니다. 외적을 통해 얻어진 벡터는 두 벡터가 이루는 평면에 수직한 벡터(법선 벡터)가 됩니다.
외적은 물리학과 컴퓨터 그래픽스에서 중요한 역할을 합니다. 특히, 두 벡터로 이루어진 평면에서 수직한 방향을 구할 때, 또는 회전과 관련된 문제를 풀 때 자주 사용됩니다.
1. 벡터의 외적 공식
A= (Ax,Ay,Az), B= (Bx,By,Bz) 일때
A x B = (AyBz - AzBy, AzBx - AxBz, AxBy - AyBx) 이고, 이 벡터는 두 벡터에 모두 수직인 새로운 벡터입니다.
2. 외적의 기하학적 의미
외적의 결과는 두 벡터가 이루는 평면에 수직인 벡터를 반환합니다. 기하학적으로 다음과 같은 특징이 있습니다:
- 크기: 외적 벡터의 크기는 두 벡터가 이루는 평행사변형의 넓이에 해당합니다.∣A×B∣=∣A∣∣B∣sinθ| 여기서 θ는 벡터 A와 벡터 B사이의 각도입니다.
- (중요) 방향: 좌표계가 왼손법칙인지 오른손 법칙인지에 따라 다릅니다. 왼손좌표계라면 외적도 왼손좌표계를 따르고, 오른손좌표계라면 오른손 좌표계를 따릅니다. 예를들어 스크린을 봤을 때, 오른쪽이 x, 위쪽이 y방향이라면 왼손법칙은 x에서 y로 손을 감을 때의 방향 즉, 시선에서 모니터를 향하는 방향이 z축이 됩니다. 오른손 법칙은 z가 반대방향입니다. 외적은 방향이 왼손이다 오른손이다 정해진게 아니라, 좌표계에 따라 달라집니다. DirectX는 왼손좌표계를 따르므로 외적도 왼손법칙을 따릅니다.
3. 외적의 성질
- 외적은 교환 법칙을 만족하지 않습니다. 대신 AxB = -(BXA)이고 이는 오른손 법칙을 해보면 방향이 왜 반대인지 알 수 있습니다.
- 평행한 두 벡터의 외적은 0입니다. 즉, 두 벡터가 같은 방향이거나 반대 방향일 경우 외적은 0 벡터가 됩니다.
4. 외적의 응용
컴퓨터 그래픽스와 물리학에서 외적은 여러 곳에서 응용됩니다:
- 법선 벡터 계산: 외적을 사용하면 두 벡터로 정의된 평면의 법선 벡터를 계산할 수 있습니다. 이는 3D 모델에서 표면의 방향을 계산할 때 자주 사용됩니다.
- 회전: 외적은 두 벡터가 이루는 각도를 기준으로 회전하는 방향을 계산하는 데 사용됩니다. 예를 들어, 게임에서 물체의 방향을 계산할 때 유용합니다.
- 물리학에서의 토크 계산: 물리학에서는 힘의 벡터와 힘이 작용하는 지점의 위치 벡터 사이의 외적을 통해 토크를 계산할 수 있습니다.
5. 외적과 내적 비교
내적과 외적은 벡터 사이의 연산으로, 서로 다른 목적을 가집니다.
- 내적(dot product): 두 벡터의 방향과 크기를 이용해 스칼라 값을 얻습니다. 두 벡터가 얼마나 같은 방향을 향하고 있는지를 측정합니다.
- 외적(cross product): 두 벡터로부터 새로운 벡터를 얻으며, 이 벡터는 두 벡터에 수직인 방향을 나타냅니다.
결론
벡터의 외적은 3D 공간에서 중요한 연산으로, 두 벡터로부터 그 벡터들이 이루는 평면에 수직한 벡터를 계산할 수 있게 해줍니다. 컴퓨터 그래픽스와 물리학에서 중요한 역할을 하며, 회전, 법선 벡터 계산, 토크 계산 등에 사용됩니다.
'[Graphics] 그래픽스 수학' 카테고리의 다른 글
[Gradient] 스칼라 값을 벡터로 편미분하기 (0) | 2025.02.19 |
---|---|
[homogeneous divide] NDC->월드좌표계, 월드좌표계 -> NDC (1) | 2025.01.24 |
[Quaternion] 회전 시 오일러 대신 쿼터니언 사용 이유 (0) | 2024.12.25 |
[Non-Uniform Scale] Scale변환 시 normal벡터 변환 방법 유도 (0) | 2024.11.21 |
[Rasterization] 스크린좌표계에서 정확한 원근투영 interpolation지점 찾기 (1) | 2024.11.03 |