이제 지금까지 배운 내용을 응용해보자 어떤 세 점이 주어질 때, 그 세 점을 삼각형으로 하는 평면을 결정할 수 있다. 임의 지점에서부터 주어진 방향으로 광선을 쏘았을 때, 그 광선이 삼각형에 맞았는지 어떻게 알 수 있을까? 이는 아래와 같은 방법으로 계산할 수 있다. 1. 평면식을 구한다. (세 점으로부터 둘레 벡터 구하고, 둘레벡터의 외적과 세 점중 하나로 평면식 결정) 2. 광선의 직선식을 구한다. 3. 광선의 직선식과 평면식의 교점을 구한다. 4. 교점이 삼각형 내부에 있는지 체크한다. (각 삼각형 선분마다, 그 선분을 포함하고 삼각형평면에 수직인 평면식을 짜고, 그 평면식 위의 임의 점 A 에서 평면식의 법선벡터를 내적했을 때 양수임이 모든 선분에서 확인되면 내부에 있다고 볼 수 있다.) 내적의 ..
지난 글에서는 직선과 점, 직선과 직선, 점과 평면 사이 최단 거리를 구하는 방법을 정리하였다. 직선과 점에서는 직선의 법선벡터를 방향벡터로 하고, 직선밖의 점을 지나는 새로운 직선식을 세운다음, 기존 직선과 교점을 구해 거리를 구하거나, 점의 위치를 원점으로 평행이동시키고, 이동된 직선의 방정식의 법선벡터를 정규화하여 최단 거리를 구할 수도 있었다. 직선과 직선의 경우, 두 직선의 외적을 이용해 한 직선을 지나는 평면식을 세우고, 그 평면식과 다른 직선 위 임의점 사이 최단 거리를 구하였다. 점과 평면사이 최단거리의 경우, 점의 위치를 원점으로 옮기고, 이동된 평면의 방정식의 법선벡터를 정규화하여 최단거리를 구하였다. 이번 글에서는 특정 평면으로 입사된 벡터의 반사벡터를 구하는 방법을 정리하고자 한다...
지난 글까지 직선과 평면의 방정식을 내적과 외적을 이용해 구하는 과정을 정리하였다. 이번 글에서는 직선과 점 사이 최단거리, 직선과 직선 사이 최단거리, 점과 평면사이 최단거리를 구하는 방법을 정리한다. (직선과 평면의 경우, 최단거리가 존재하려면 반드시 직선과 평면이 평행해야하는데, 그 경우 직선 위 임의 점에서 평면과 최단거리를 구하면 되기 때문에 점과 평면사이 최단거리를 구하는 것과 같다.) 직선과 점 사이 최단 거리 우선 2차원에서 직선과 점 사이 최단 거리를 구하는 방법을 생각해보자 직선 밖의 점과 직선 사이의 최단 거리는 그 점에서 직선으로 수선의 발을 내렸을 때, 수선의 발과 해당 점 사이의 거리이다. 직선의 방정식을 내적을 이용하여 표현하면, 직선의 법선벡터를 쉽게 구할 수 있다. 이를 이..
지난 글에서는 내적과 내적의 응용 5가지에 대해 정리하였다. 이번 글에서는 외적과 외적의 응용에 대해 정리하고자 한다. 외적 내적때와 마찬가지로, 외적도 정의를 우선 깔고 시작하자. 외적은 a x b 로 표현하며, 이는 크기와 방향이 모두 있는 '벡터' 이다. 외적은 3차원에서만 사용가능하며, 아래와 같이 계산한다. a = (ax, ay, az), b = (bx, by, bz) a x b = (ay*bz - az*by, az*bx - ax*bz, ax*by - ay*bx) 식이 굉장히 복잡하다. 외적은 '방향' 이 존재하는 벡터인데, 외적의 결과 방향은 a와 b에 모두 수직인 방향이다. 이때 수직인 방향이 2개 존재하는데, 오른손을 기준으로 a, b 를 잡을 때 엄지손가락의 방향이 외적의 방향이다. (왼..
지난 글에서는 벡터로 표현한 서로 다른 두 직선의 교점을 구하는 방법을 정리하여 보았다. 이번 글에서는 내적의 개념과 내적의 응용 예시들을 정리해보겠다. 내적의 정의 벡터 a = (ax, ay, az), 벡터 b = (bx, by, bz) 라고 할 때, 벡터 a 와 벡터 b 의 내적은 아래와 같다. a · b = ax * bx + ay * by + az * bz 또한 내적의 정의로부터 벡터 a 의 크기와 같은 두 백터를 내적한 값은 같다. 만약 두 백터 a, b의 크기와 두 벡터가 이루는 사이각을 안다면 아래와 같이 구할 수도 있다. a · b = ||a|| * ||b|| * cos(세타) 이 식으로부터 내적은 일종의 '투사' 개념이며, 관점바꾸기에 사용됨을 이해할 수 있다. 벡터 a 를 벡터 b 의 방..
지난 글에서는 벡터와 벡터를 이용한 직선식의 표현에 대해 정리하였다. 이번 글에서는 그렇게 표현한 직선식이 여러개 있을 때, 그 직선들이 서로 만나는 지 판별하고, 만난다면 좌표를 어떻게 구할 수 있는지 그 방법을 정리하고자 한다. 2D 직선의 교점 구하기 우선 간단하게 2D 평면에 존재하는 두 직선의 교점을 구해보자. 2D 평면에서 서로 다른 두 직선은 반드시 서로 평행하거나 교차한다. 우선 두 직선이 서로 평행한 경우를 따져보자 L1: y = 2x + 1 L2: y = 2x + 3 이렇게 두 직선이 있을 때, 두 직선을 parametric 표현으로 바꾸면 아래와 같이 바꿀 수 있다. (과정은 L1만 기록하였다) L1(t): (t, 2t+1) L2(t): (t, 2t+3) 저렇게 표현한 것은 사실 x ..
멀응수 전공과목을 아직 다 듣지는 않았지만, 배우다보니 점점 멀응수가 어떤 과목인지 알아가고 있다. 지금까지 공부하면서 이해한 멀응수는 정말 말 그대로 '응용수학' 이었다. 특히 '멀티미디어' 분야에 응용이 되기 좋다는 느낌이다. 멀티미디어 분야라고 한다면 게임 그래픽, 카메라 이미지 처리와 같은 곳에서 쓰이는 느낌이다. 그래서 보통 '빛' 을 다루곤 한다. 빛은 직진하다가 어떤 물체에 닿고, 그 빛이 다시 반사되거나 꺾인다. 우리가 카메라로 물체를 보고, 게임에서 그래픽 처리를 하는 과정도 이 '빛' 을 수학적으로 처리하여 얻게 된다. 한 줄기 빛을 '벡터'로 하여 어떤 물체로 뻗어 나갈 때 그 빛이 물체에 닿는지 아니면 물체에 닿고 반사되었을 때 어디로 반사되는 지 등을 계산할 수 있다. 이를 위해 ..