본문 바로가기
서적 정리/DirectX11을 이용한 3D 게임 프로그래밍 입문

4.외적

by 민돌이2 2022. 1. 4.

내적 외에 벡터 곱셉으로 가위곱(cross product) 또는 외적(outer product)이라는 것이 있다.

결과가 스칼라인 내적과는 달리 외적의 결과는 벡터이다. 외적은 오직 3차원 벡터에 대해서만 정의된다. 두 3차원 벡터 u와 v의 외적을 취하면 u와 v 모두에 직교인 또 다른 벡터 w가 나온다.

u = (ux, uy, uz)이고 v = (vx, vy, vz)라고 할 때 둘의 외적은 다음과 같이 정의된다.

w = u × v = (uyvz - uzvy, uzvx - uxvz, uxvy - uyvx)

왼손 좌표계라면 u와 v의 외적은 왼손의 엄지방향이다. 이를 왼손 엄지 법칙이라고 한다. DirectX는 왼손 좌표계이므로 왼손 엄지 법칙이다. OpenGL처럼 오른손 좌표계를 사용하는 경우 오른손 엄지 법칙이다.

 

 

1.2차원 유사 외적

외적을 이용하면 주어진 두 3차원 벡터에 직교인 벡터를 구할 수 있다. 2차원에선 외적이 적용되지 않지만, 하나의 2차원 벡터 u = (ux, uy)가 주어졌을 때 u의 수직인 벡터 v를 구하는 것은 가능하다.

u · v = (ux, uy) (-uy, ux) = -uxuy + uyux = 0

u⟂v이다. 또한 u · v = uxuy + uy(-ux) = 0도 성립하므로 u⟂-v도 성립한다.

 

 

2.외적을 이용한 직교화

그람-슈미트 직교화 공정을 이용해서 벡터 집합을 직교화하는 방법을 배웠었다(3장). 3차원의 경우 정규직교에 아주 가깝지만 수치 정밀도 오차 누적 때문에 완전한 정규직교는 아닌 벡터 집합 {v0, v1, v2}를 외적을 이요해서 직교화하는 방법이 있다.

이 과정을 마치고 나면 벡터들의 집합 {w0, w1, w2}는 정규직교 집합이다.

728x90

'서적 정리 > DirectX11을 이용한 3D 게임 프로그래밍 입문' 카테고리의 다른 글

8.행렬 정의  (0) 2022.01.20
7.벡터 대수 요약  (0) 2022.01.20
6.XNA Math 라이브러리의 벡터 관련 기능  (0) 2022.01.05
5.점  (0) 2022.01.04
3.내적  (0) 2022.01.04
2.길이와 단위벡터  (0) 2022.01.04
1.벡터  (0) 2022.01.04
차례  (0) 2022.01.03

댓글