선분(S-E)와 점 P와의 거리를 구해보도록 합시다. 우선 두개의 벡터를 구할수 있습니다. $$ \begin{aligned} V_1 &= \overrightarrow{P-S} \\ V_2 &= \overrightarrow{E-S} \\ \vec{V_1}\cdot\vec{V_2} &= |\vec{V_2}||\vec{V_1}|cos(\theta) =|\vec{V_2}||\vec{V_2}|U \\ U &= \frac{\vec{V_1}\cdot\vec{V_2}}{|\vec{V_2}||\vec{V_2}|} \end{aligned} $$ 위 식을 통해서 U값을 구할수 있습니다. 일단 U를 구했으면, U를 통하여 $V_2$와 수직을 이루는 벡터 $\overrightarrow{P-C}$의 C 값을 구할 수 있습니다. $$ C = S + U*\overrightarrow{E-S} $$ 마지막으로 C를 구했으니 $C-P$간의 거리가 선분과 점의 거리가 됩니다. double CIsLine2d::DistanceTo(const CIsPoint2d &pt) const { const double mag = Length(); if(0.f != mag) { double u = ((pt.x() - m_start.x())*(m_end.x() - m_start.x()) + (pt.y() - m_start.y())*(m_end.y() - m_start.y())) / (mag*mag); double xp= m_start.x() + u*(m_end.x() - m_start.x()); double yp= m_start.y() + u*(m_end.y() - m_start.y()); const double dx = xp - pt.x(); const double dy = yp - pt.y(); return sqr...