일반적으로 2차원 직교좌표계(XY 평면을 기준으로한 좌표계)를 기준으로 원의 방정식은 (X - a) ^ 2 + (Y - b) ^ 2 = R ^2 이라고 표현할 수 있습니다. 여기서 X, Y는 미지수가 되는 것이고, a는 원의 중심의 X 좌표, b는 원의 중심의 Y좌표가 됩니다. 그리고 R는 원의 반지름입니다.

일반적으로 원을 2차원 직교좌표계에서는 쉽게 방정식으로 표현할 수 있습니다. 하지만 2차원 직교좌표계가 아닌 3차원 직교좌표공간에서는 어떻게 표현을 할 수 있을까요? 우선 원의 정의를 생각해보면 원의 중심이 되는 한 점을 기준으로 일정한 거리 (반지름) 만큼 떨어진 점들의 집합으로 표현할 수 있습니다. 이 정의를 3차원 직교좌표공간에서도 같게 유지하면서 점들을 찾으면 원을 생성할 수 있습니다.

여기서 구의 방정식과 원의 방정식은 다르다는 것을 인지하여야 합니다. 구은 영어로 Sphere라고 하며 공과 같은 모양을 한 도형을 의미합니다. 

구의 방정식은 (X - a) ^ 2 + (Y - b) ^ 2 + (Z - c) ^ 2 = R^2 으로 표현할 수 있고, X, Y, Z는 3차원 공간에서 임의의 점을 의미하고 (a, b, c)는 구의 중심, R은 구의 반지름을 의미합니다. 따라서 구의 중심에서 반지름 R만큼 떨어진 점들을 찾아서 Mesh로 표현하면 구가 되는 것이죠. 원과는 전혀 다른 이야기입니다. 

원을 정의하기 위해서는 평면을 먼저 알아야 합니다. 평면은 법선벡터를 갖은 무한히 평평한 면입니다. 이때 법선벡터는 해당 평면에 수직방향인 벡터를 의미합니다.

평면이 XY평면이라고 하면 법선벡터는 Z축에 평행한 벡터가 되는 것입니다. 이제 평면을 정의했다면 이제 원을 정의할 수 있게 됩니다. 원은 한 평면에서만 존재할 수 있기 때문입니다. 처음 원을 정의할때 한 평면에서 원의 중심과 반지름을 이용한다는 의미가 내포되어 있는 것이죠. 일반적으로 원이라고하면 평면에 정의된다는 것을 익숙하게 생각하기 때문에 대부분 표현을 생략하는 것입니다. 

만약에 ZX 평면에 (0,0,0)을 중심으로 하고 반지름을 5로 하는 원을 생성하고 싶다면 (X - 0) ^ 2 + (Z - 0) ^ 2 = R ^ 2 으로 표현되는 것이죠. XY평면이나 ZX평면과 같이 한 축에 수직인 경우 방정식으로 표현하기가 쉽겠지만, 임의의 평면에 대해서 원의 방정식을 구하는 것은 쉽지 않습니다. 따라서 평면, 원의 중심, 원의 반지름이라는 3가지 요소를 가지고 XY 평면으로 변환하여 방정식을 표현하게 됩니다.

예를 들면 3차원에서 두 원의 교점을 구하는 문제를 풀기 위해서, 우선 두 원의 평면이 같은 법선벡터를 갖는지, 확인을 한 뒤 두 원을 XY평면으로 이동하여 일반적인 두 원의 교점을 구하는 문제로 변환하여 해결하게 됩니다. 컴퓨터 기하학을 하기 위해서 이런 변환을 LCS to GCS 혹은 GCS to LCS 에 대한 이야기를 알아야합니다. 즉 3차원 공간에서 임의의 좌표계가 있을때, 이 좌표계를 원하는 공간의 좌표계로 변환하는 방법을 의미합니다. 다음에 시간이 되면 해당 내용도 다루도록 하겠습니다.

 

+ Recent posts