C++ (Qt)qreal Dist2Line( const QPointF & pos, const QPointF & p0, const QPointF & p1 ){ QVector2D v0(p0 - pos); QVector2D v1(p1 - pos); QVector2D dir(p1 - p0); if (QVector2D::dotProduct(dir, v0) * QVector2D::dotProduct(dir, v1) < 0) return QVector2D::distanceToLine(pos, dir.normalized()); return qMin(v0.length(), v1.length());}