선에 대한 수학적 설명

선에 대한 수학적 표현인, 선에 대한 방정식은 좌표와 벡터로 설명될 수 있습니다. 어떤 선이 있다고 해 보면, 그 선이 점p를 지나고 선의 방향은 벡터v라고 한다면 아래 그림처럼 상상해 볼 수 있습니다.

사용자 삽입 이미지
아래의 공식은 선을 구성하는 좌표를 얻는데 사용할 수 있습니다.

사용자 삽입 이미지
t는 스칼라입니다. t값에 의해 선 상의 모든 좌표를 얻을 수 있습니다. t가 0이면 좌표 p가 얻어집니다. t가 0이 아닌 다른 값이면 선 상의 다른 좌표가 얻어집니다. 백터는 2개의 좌표로부터 생성되어지므로 v는 선을 지나는 2개의 좌표를 통해 얻어집니다. p이외에 선을 지나는 다른 한 점을 p1이라고 하면 v는 p1 – p가 됩니다.

선은 양쪽 방향으로 계속 이어지며 확장된다는 것이고 광선(Ray)은 한 방향으로만 계속 이어지며 확장된다는 것으로 정의할 수 있습니다.

사용자 삽입 이미지
위의 그림에서 상단은 선이고 하단은 광선입니다. 위의 공식을 통해 다시 살펴보면, 선과 광선의 차이점은 t가 가질수 있는 값의 범위가 다르다는 점입니다. 선에서 t는 제한이 없으며, 광선에서 t는 음수가 될 수 없습니다.

선과 어떤 좌표 사이의 최단 거리

어떤 좌표와 어떤 선 사이의 가장 짧은 거리는 그 좌표에서 그 선에 수직인, 선 상의 좌표로 구성되는 선분의 길이입니다. 좌표p와 백터v로부터 정의되는 선에 대해서 살펴보겠습니다. 어떤 좌표q에서 이 선(좌표p와 벡터v로 결정)까지의 거리를 계산하는 것이 목표입니다.

사용자 삽입 이미지
위의 그림은 좌표q에서 선까지의 거리가 좌표q와 좌표q’까지의 거리임을 보여줍니다. 좌표q’는 백터u를 백터v에 대해서 투영함으로써 얻어집니다. 백터간의 투영에 대해서는 이미 알고 있다고 가정하고 만약 모르신다면 이 블로그의 글을 참조하시길 바랍니다. 여하튼, 이 투영된 벡터 puv는 다음과 같습니다.

사용자 삽입 이미지
이제 q’는 아래처럼 정해질 수 있습니다.

사용자 삽입 이미지
이제 최단 거리는 q와 q’ 사이의 거리가 됩니다.

광선과 좌표 사이의 최단 거리

최단거리의 결과로 광선에 대해서 투영된 좌표들에 대해 동일한 결과 공식을 예상했으나, 다음 그림에서 보는 것처럼 항상 옳바르지는 않습니다.

사용자 삽입 이미지
앞서 어떤 좌표q와 선 사이의 거리를 위해 제시된 공식은 오직 광선 내에서 투영될 수 있을때만 의미가 있습니다. 백터u와 백터v에 대한 내적을 통해서 광선 내에서 투영되는지 검사할 수 있습니다. 즉, 백터 u와 v 사이의 코사인 각도가 음수라면 광선 내에서 투영되지 않는다는 것입니다. 코사인 각이 음수여서 광선에 투영되지 않는다면, 좌표q에서 그 광선까지의 최단 거리는 좌표q에서 광선의 시작점까지의 거리를 계산해서 쉽게 알 수 있습니다.

두 백터의 투영(Projection)

이 글의 목적은 백터v 위로 백터u를 투영하는 것에 대한 방법을 살펴보는 것입니다.

사용자 삽입 이미지
위 그림에서 백터puv는 백터v 위에 백터u를 투영한 것입니다. 그림에서 보면 알 수 있듯이, v와 puv는 평행하므로 puv는 다음처럼 정의될 수 있습니다. 물론 여기서 백터v는 크기가 1인 단위백터입니다.

사용자 삽입 이미지
여기서 |puv|는 puv의 길이입니다. |puv|를 알아내는 것이 곧 백터puv를 알아내는 것 입니다. 백터u와 백터puv의 길이 사이의 관계는 이 두 백터가 이루는 코사인 각입니다.

사용자 삽입 이미지
내적(Dot Product)의 정의는 다음과 같습니다.

사용자 삽입 이미지
위의 정의로부터, 백터puv의 길이는 다음과 같습니다.

사용자 삽입 이미지
결국, 이 글의 가장 처음에 언급한 공식으로부터 위의 식을 대입하면 다음과 같은 puv를 얻을 수 있습니다.

사용자 삽입 이미지

벡터 – 내적(Dot Product)

두 개의 벡터에 대한 내적의 연산 결과는 스칼라 값입니다. 두 벡터 사이의 코사인값을 얻는 것은 간단합니다. 아래의 식은 두 벡터 v1, v2에 대한 내적 v를 계산하기 위한 필요한 단계를 보여주고 있습니다. 내적의 연산은 일반적으로 ‘ ∙ ‘ 로 표시합니다.

사용자 삽입 이미지
벡터 v1과 v2 사이의 각도로 표시하는 방법으로 하면 다음처럼 나타낼 수 있습니다.

사용자 삽입 이미지
위의 식으로부터 우리는 두 벡터중에 하나라도 크기가 0이면 내적 역시 0이 된다는 것을 알 수 있으며 두 벡터가 수직(90도)일 경우도 내적이 0이라는 것을 알 수 있습니다. 아래는 내적에 대한 몇가지 성질입니다. 즉, 교환법칙과 분배법칙 모두 성립한다는 것입니다.

사용자 삽입 이미지

벡터 – 외적(Cross Product)

두개의 벡터에 대한 외적은 또 하나의 새로운 벡터를 정의합니다. 두개의 벡터가 이루는 하나의 평면에 대해 수직인 벡터가 바로 외적에 의해 만들어지는 새로운 벡터입니다. 외적은 두 벡터가 이루는 각을 구하는 것이라든지, 광원에 대한 계산, 즉 빛의 방향을 구하는 계산 등에 응용됩니다.

사용자 삽입 이미지
아래의 공식은 두개의 벡터 v1, v2에 대한 외적 v를 구하기 위해 필요한 과정을 보여주고 있습니다. 외적 연산의 기호는 ‘ X ‘를 일반적으로 많이 사용합니다.

사용자 삽입 이미지
벡터 v1과 v2의 시작점을 원점이라고 할때, 벡터v1과 v2가 이루는 평면이 X축과 Z축이 구성하는 평면인 XZ라고 하면 외적에 의한 벡터는 v1에서 v2가 반시계방향이면 Y축 방향으로 위를 향하고 시계방향이면 Y축 방향으로 아래를 향합니다. 두 벡터의 외적에 대한 일반적인 성질은 아래와 같습니다. 내적과는 다르게 외적은 교환법칙이 성립하지 않습니다. 아래의 식에서 k는 스칼라값입니다.

사용자 삽입 이미지
벡터v1과 v2가 이루는 사인각으로도 외적을 표시할 수 있으며, 다음과 같습니다.

사용자 삽입 이미지
위의 식에서 a가 두벡터 사이의 각도 입니다. 위 공식에서 보듯, 외적도 내적과 마찬가지로 두 벡터가 이루는 각을 구하는데 사용할 수 있습니다.