Вы имеете в виду, ближайший к определенному ребру или ближайший к ребру в целом (в отличие от вершины или плоскости)?
Если первое, то точка является ближайшей к (конкретному) ребру, если она лежит на пересечении четырех полупространств, определяемых двумя плоскостями, перпендикулярными смежным граням и проходящими через ребро, и двумя плоскостями, перпендикулярными к ребру. ребро и проходя через смежные вершины. Поэтому проверьте свою точку на всех четырех плоскостях, и если она лежит в соответствующем полупространстве для всех из них, она ближе всего к этому краю.
Подробно, предположим, что мы хотим проверить, является ли точка P ближайшей к краю AB , которая лежит между гранями ABC и ПЛОХО (вершины приведены по часовой стрелке). Тогда четыре теста:
- ( P - A ) · ( A - B ) <0 </li>
- ( P - B ) · ( B - A ) <0 </li>
- ( P - A ) · (( B - C ) × ( A - C ) × ( A - B )) <0 </li>
- ( P - B ) · ((* A - D ) × ( B - D ) × ( B - A )) <0 </li>
(Интересно, есть ли более дешевый способ проведения третьего и четвертого тестов? Если вам известен один, дайте мне знать!)