Вы хотите спроецировать вектор (x, y, z) на линию с направлением (a, b, c).
Если (a, b, c) является единичным вектором, то результатом будет просто (x, y, z). (A, b, c) (a, b, c) = (ax + by + cz) (а, б, в)
Если это не единичный вектор, сделайте его единым, разделив его на норму.
РЕДАКТИРОВАТЬ: немного теории:
Пусть E будет вашим векторным пространством размерности N:
пусть F - линия, направленная вектором a. Гиперплан, ортогональный к F:
Теперь давайте выберем вектор x в E, x можно записать как:
, где xF - это координата x в направлении F, x, ортогональный - это координата на ортогональном гиперплане.
Вы хотите найти xF: (это точно такая же формула, как та, которую я написал выше)
Вам следует внимательно изучить статью в Википедии о ортогональных проекциях и попытаться найти больше материалов в Интернете.
Вы можете обобщить это на любой F, если это уже не линия, а план, тогда возьмите F ортогонально и разложите x таким же образом ... и т.д.