Изменить положение конечной точки вектора

Все здравствуйте. У меня есть вектор(3d) с его начальной точкой с её координатами и есть его конечная точка, так же с координатами. Вопрос такой - мне нужно сместить на определённое расстояние конечную точку вектора назад, в обратном направлении, по этому вектору. Вектор


Ответы (3 шт):

Автор решения: Kromster

Все достаточно просто и даже просто расписав на бумажке вы уже почти всё поймёте.

  1. Переносите вектор в начало координат
  2. Нормализуете вектор
  3. Умножаете нормальный вектор на нужное расстояние
  4. Полученный вектор вычитаете из конечной точки изначального вектора.
→ Ссылка
Автор решения: HolyBlackCat

Сначала терминология: вектор это три числа (в 3D). У него не может быть координат начальной и конечной точек, вектор - это только разница между двумя координатами. То что у вас - это скорее направленный отрезок.

  • Определяем направление: координаты конечной точки минус координаты начальной точки (покоординатно вычитаем, получаем вектор).
  • Нормализуем (то есть делим на его длину, то есть на sqrt(x*x + y*y + z*z), чтобы сделать его длиной 1).
  • Вычитаем из конечной точки этот вектор, умноженный на желаемое расстояние.
→ Ссылка
Автор решения: MBo

У вектора нет начальной точки, можно считать, что это нулевая координата.

Уменьшить длину вектора на заданную величину можно так:

Vnew = V - Delta * V / Len(V)
→ Ссылка