Доброго дня. Нужна подсказка, если конечно знает кто.
есть 3 точки с известными координатами.
нужно математически найти на виртуальной прямой между точками p1 и p2 ближайшую точку от p3
Интерполяцию (int) между p1 и p2 я сделал и могу получить координаты всех точек в зависимости от дистанции (trans) на этой прямой.
p1 = (x,y,z)
p2 = (x,y,z)
p3 = (x,y,z)
trans = any
v1, v2 = om.MVector(p1), om.MVector(p2)
ds = v2 - v1
dist = om.MVector(v2-v1).length()
int = v1+(trans/dist*ds)
честно говоря векторную алгебру уже не помню и поиск по гуглу мало что дал. Но мало ли, мож кто из APIшников сюда заглядывает и подскажет что.
PS. Глупости вроде "Есть же констрейн closestpoint" не предлагать. Нужен математический способ.
есть 3 точки с известными координатами.
нужно математически найти на виртуальной прямой между точками p1 и p2 ближайшую точку от p3
Интерполяцию (int) между p1 и p2 я сделал и могу получить координаты всех точек в зависимости от дистанции (trans) на этой прямой.
p1 = (x,y,z)
p2 = (x,y,z)
p3 = (x,y,z)
trans = any
v1, v2 = om.MVector(p1), om.MVector(p2)
ds = v2 - v1
dist = om.MVector(v2-v1).length()
int = v1+(trans/dist*ds)
честно говоря векторную алгебру уже не помню и поиск по гуглу мало что дал. Но мало ли, мож кто из APIшников сюда заглядывает и подскажет что.
PS. Глупости вроде "Есть же констрейн closestpoint" не предлагать. Нужен математический способ.
Последнее редактирование: