멀응수 전공과목을 아직 다 듣지는 않았지만, 배우다보니 점점 멀응수가 어떤 과목인지 알아가고 있다.
지금까지 공부하면서 이해한 멀응수는 정말 말 그대로 '응용수학' 이었다.
특히 '멀티미디어' 분야에 응용이 되기 좋다는 느낌이다.
멀티미디어 분야라고 한다면 게임 그래픽, 카메라 이미지 처리와 같은 곳에서 쓰이는 느낌이다.
그래서 보통 '빛' 을 다루곤 한다.
빛은 직진하다가 어떤 물체에 닿고, 그 빛이 다시 반사되거나 꺾인다.
우리가 카메라로 물체를 보고, 게임에서 그래픽 처리를 하는 과정도 이 '빛' 을 수학적으로 처리하여 얻게 된다.
한 줄기 빛을 '벡터'로 하여 어떤 물체로 뻗어 나갈 때 그 빛이 물체에 닿는지
아니면 물체에 닿고 반사되었을 때 어디로 반사되는 지 등을 계산할 수 있다.
이를 위해 벡터와 이와 관련된 연산들, 그리고 행렬이 필요하다.
벡터와 좌표계
우선 벡터를 정리해보자.
벡터는 '크기' 와 '방향'을 가진 숫자의 나열이다. 가로 또는 세로로도 많이 쓴다.
상대되는 개념으로 '크기' 만 가진 스칼라가 있다.
특징적인 벡터는 원점 (0, 0, 0) 에서 시작하는 '위치벡터' 와 크기가 1인 '단위벡터' 가 있다.
단위벡터에서 x 축 방향의 단위벡터, y 축 방향의 단위벡터, z 축 방향의 단위벡터를 각각 i, j, k 로 표현하기도 한다.
위치벡터를 이용해서 우리는 '점'을 표현할 수 있다.
그리고 이렇게 설정한 두 점을 이용하면 선도 표현할 수 있다.
또 하나 중요한 내용이 '좌표계' 이다.
보통 수학에서 사용하는 좌표계는 오른손 좌표계를 사용한다.
악수하든 손을 피고 손을 감아쥔다고 했을 때, 엄지손가락으로 올라가는 방향이 Z축, 감아쥐는 방향을 따라 X축, Y축을 놓으면 된다.
그림으로는 아래와 같다.
하지만 지금 배우는 TV, 모니터와 같은 멀티미디어에서 사용되는 수학의 경우엔 오른손좌표계가 아니라 왼손좌표계를 사용한다.
위 그림에서 Z축 방향만 바뀌도록 다시 그리면 된다.
보통은 아래와 같이 그린다.
이렇게 y축이 위쪽 (정수리) 방향을 향하게 둔다.
선의 표현
이제 선의 표현에 대해 정리해보자.
중학교 때 배운 내용으로 2D 공간에서 선을 표현하면 y=ax+b 의 형태로 표현할 수 있다.
하지만 이렇게 표현하는 경우, 2가지 문제가 있다.
1. y에 대해 식을 정리하다보니 기울기가 무한대인, 즉, y축에 평행한 직선을 표현할 수 없다.
(x = a 형태로 표현할 수 있지 않느냐고 할 수 있지만, 이 표현식은 y 에 대해 정리한 식이 아니다.)
2. 3D 공간에서 직선을 표현하려면 x, y, z 3개의 변수를 사용해야 하는데, 위와 같은 방법으로는 선을 표현할 수 없다.
(ax + by + cz = d 형태는 평면이다)
그래서 이 2가지 문제를 해결하기 위해 '벡터'를 이용해 선을 표현할 수 있다.
벡터를 이용해 선을 표현할 때는 직선의 진행방향 (기울기) 를 나타낼 벡터와, 직선이 처음 어디서부터 시작할 지 나타내는 위치벡터 2개가 필요하다.
두 점의 좌표가 (x, y) (a, b) 로 주어진다고 했을 때 기울기를 나타내는 벡터는 두 점의 차를 이용해 (a-x, b-y) 로 나타낼 수 있다.
시작점은 직선이 두 점을 모두 지나므로, 아무 점이나 넣으면 된다.
선은 특정 점에서부터 특정 방향으로 뻗어나가는 점(벡터)들의 집합으로 표현할 수 있다.
따라서 그 집합을 표현하는데 '매개변수' t 를 활용하여 아래와 같이 표현할 수 있다.
l(t) = (a, b) + (a-x, b-y)*t
t의 값을 특정함에 따라서 직선 위의 한 점이 표현된다.
만약 0 < t < 1 이면 이는 두 점 (a, b) (x, y) 을 연결한 '선분' 을 나타내게 되고,
0 < t 이면, (a,b) 로부터 뻗어나가는 반직선 (광선) 을 나타내며,
t의 범위에 제약이 없다면 직선을 의미한다.
이런 표현식을 Parametric 표현식이라고 한다.
그렇다면 이 표현은 아까 말한 단점을 모두 커버할 수 있을까?
우선 3D 공간이라면 시작점이 될 위치벡터와 기울기벡터를 모두 3개의 숫자로 나타낼 수 있기 때문에 커버가 된다.
x=a 로 표현되는 y축에 평행한 직선은 어떨까?
간단하게 기울기 벡터의 x 값을 0 으로 하면 된다.
참고로 직선식을 구할 때 아주 중요한 디테일이 있다.
바로 '기울기 벡터의 크기' 를 1로 맞추는 것이다.
내가 이해한 이유는, 기울기 벡터는 '방향' 이 중요하지 크기가 중요하지 않다.
따라서 크기라는 정보를 제거함으로서 기울기의 의미를 부각시키는 효과가 있다.
또 이렇게 표현함으로서 t 값이, 직선식을 잡을 때 설정한 점으로부터 떨어진 거리를 의미하게 된다는 장점도 있다.
한번 예시로 y = x + 1 이라는 식을 parametric 표현식으로 표현해보자.
l(t) = (0, 1) + (2**-0.5, 2**-0.5) * t 의 형태가 된다.
이제 이를 벡터의 표현으로 일반화하여보자.
서로 다른 두 점을 나타내는 위치벡터를 각각 벡터a, 벡터b 라고 하면 그 두 점을 지나는 직선식을 아래와 같이 쓸 수 있다.
벡터의 성분을 3개로 한다면 3차원의 직선도 같은 방법으로 표현할 수 있다.
지금까지 벡터와 벡터를 이용해 직선을 표현하는 방법에 대해 정리하였다.
다음 글에서는 벡터로 표현한 서로 다른 두 직선의 교점의 존재 여부와
교점이 있다면 해당 교점 좌표를 구하는 방법을 정리하겠다.
그 다음에는 내적과 내적을 이용한 직선식의 표현,
외적과 외적을 이용한 평면식의 표현,
원점/임의점에서 평면까지 거리 구하기
homogeneus 표현식과 반사식
내적을 이용한 내부/외부 테스트 (특정 방향의 광선이 특정 영역의 평면 내부에 닿았는지 판단하기)
행렬을 이용한 이동,회전, 좌표계 변환까지 정리할 것이다.
적고보니 정리할게 많네..
화이팅하자..ㅎ
'CS > 멀티미디어응용수학' 카테고리의 다른 글
[멀티미디어응용수학] 5. 입사 벡터로부터 반사 벡터 구하기 (0) | 2023.10.17 |
---|---|
[멀티미디어응용수학] 4. 직선과 평면, 점 사이의 최단 거리 (0) | 2023.10.14 |
[멀티미디어응용수학] 3. 외적과 외적의 응용 (0) | 2023.10.12 |
[멀티미디어응용수학] 2. 내적과 내적의 응용 (0) | 2023.10.11 |
[멀티미디어응용수학] 1. 직선의 교점 계산 (1) | 2023.10.06 |