이전 글에서 미처 고려하지 못했던 사항이 있어 이 글을 작성하게 되었습니다.
위 부분은 두 직선 구간이 수직이라는 가정으로 작성되었습니다.
어제 동료와 이야기하다 45도로 연결된 구간을 어떻게 처리해야 하는지 고민이 된다는 이야기를 들었을 때 이전 글에서 위 부분이 문제가 있다는 것을 알았습니다.
수학 시간에 우리가 배웠던 모든 축 벡터를 서로 수직입니다. 한번 기억을 더듬어 보시기 바랍니다.
따라서 우리가 구해야 하는 축 벡터도 서로 수직이어야 합니다. 또 다른 말로 서로 독립적이어야 합니다.
그런데 두 직선 구간이 45로 연결되어 있다면 두 구간을 독립적이지 않게 됩니다.(한 축의 좌표가 다른 축 좌표 값을 포함하게 됩니다.)
A, B 벡터가 있다고 가정하고 두 벡터가 서로 수직이지 않다고 하면, A, B 벡터 외적으로 A, B에 수직인 C를 구할 수 있습니다. $$\vec{C} = \vec{A}\times\vec{B}$$ 그리고 A, C 벡터 외적을 통하여 B 벡터를 구할 수 있습니다. 이때 B 벡터는 A, C 벡터에 수직이 됩니다. 이로써 세 벡터 A, B, C는 수직이며 서로 독립적입니다. $$\vec{B}=\vec{A}\times\vec{C}$$
이로써 이전 글의 문제점을 보완할 수 있습니다.
하지만 복잡해 보입니다. 단순함이 복잡함보다 아름답습니다.
이전 글에서의 목적을 간단히 되짚어 보면 점들을 포함하는 OrientedBoundingBox를 구하는 것입니다.
길이가 가장 긴 직선 구간을 선택해 그와 붙어 있는 직선 구간을 선택해 두 벡터를 외적하여 폭 벡터를 구한다
위 부분은 두 직선 구간이 수직이라는 가정으로 작성되었습니다.
어제 동료와 이야기하다 45도로 연결된 구간을 어떻게 처리해야 하는지 고민이 된다는 이야기를 들었을 때 이전 글에서 위 부분이 문제가 있다는 것을 알았습니다.
수학 시간에 우리가 배웠던 모든 축 벡터를 서로 수직입니다. 한번 기억을 더듬어 보시기 바랍니다.
따라서 우리가 구해야 하는 축 벡터도 서로 수직이어야 합니다. 또 다른 말로 서로 독립적이어야 합니다.
그런데 두 직선 구간이 45로 연결되어 있다면 두 구간을 독립적이지 않게 됩니다.(한 축의 좌표가 다른 축 좌표 값을 포함하게 됩니다.)
A, B 벡터가 있다고 가정하고 두 벡터가 서로 수직이지 않다고 하면, A, B 벡터 외적으로 A, B에 수직인 C를 구할 수 있습니다. $$\vec{C} = \vec{A}\times\vec{B}$$ 그리고 A, C 벡터 외적을 통하여 B 벡터를 구할 수 있습니다. 이때 B 벡터는 A, C 벡터에 수직이 됩니다. 이로써 세 벡터 A, B, C는 수직이며 서로 독립적입니다. $$\vec{B}=\vec{A}\times\vec{C}$$
이로써 이전 글의 문제점을 보완할 수 있습니다.
하지만 복잡해 보입니다. 단순함이 복잡함보다 아름답습니다.
이전 글에서의 목적을 간단히 되짚어 보면 점들을 포함하는 OrientedBoundingBox를 구하는 것입니다.
댓글
댓글 쓰기