Я думаю, что ваш вопрос в 3D можно свести к простой задаче аффинной 2D геометрии, проецируя точку P
на плоскость, определяемую тремя точками A, B, C
или двумя векторами AB
и AC
( или другие комбинации AB, AC, and BC
).
На первый взгляд кажется вероятным, что задача 3 + 1 баллов обобщается на N измерений (3 точки всегда определяют треугольник и плоскость).
Однако не сразу ясно, будет ли этот подход работать для большего количества точек, которые не будут копланарными.
1- приведение к 2D путем проецирования P
в точку P'
на плоскость, заданную векторами AB
и AC
.
2 - понять, что позиция P'
определяется только одним коэффициентом t in the Reals
с.т. P'
является аффинной комбинацией AB
и AC
:
P' = t * AB + (1-t) * AC
3 - оттуда, P'
может быть в 3 различных местах:
(а) внутри треугольника ABC
: в этом случае Q = P'
(b) в областях, ограниченных ортогональной проекцией наружу
один из сегментов; в этом случае Q
является ортогональной проекцией
P'
на ближайшем сегменте.
(c) не в (a) или (b); в этом последнем тривиальном случае Q
является ближайшим
из A, B, or C