2013-02-14 4 views
0

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

Учитывая координаты x y z для A и B и зная их расстояние, как я могу увеличить или уменьшить это расстояние, сохраняя угол между двумя точками?

Скажет точку А на 0, 0, 0 и точку В на 3, 3, 0.

я в состоянии вычислить расстояние между двумя точками, чтобы быть 4,242.

Мне нужно уметь «нажимать» точку B дальше на ту же касательную X. Любые идеи?

Заранее спасибо.

+1

Cant вы множественным каждая координата B с тем же скаляром? – smk

+0

Я согласен с @SajitKunnumkal, если вы несколько вектором скаляра, его направление должно быть сохранено. – gustavodidomenico

+0

@ SajitKunnumkal, который работает только в том случае, если точка A является источником. В противном случае скалярное умножение B изменит угол между A и B. – Celada

ответ

2
  • Вычесть A из B, чтобы получить вектор D, представляющий расстояние и направление от A до B

    D = B - A 
    
  • Multiply D вашей скаляра x толкать его дальше от А в том же направлении: (Я меняю ваш X на x, чтобы подчеркнуть, что это скаляр).

    D' = xD 
    
  • Получить новую точку B', которая находится в том же направлении от А, Б, но дальше (предполагается x > 1):

    B' = A + D' 
    
Смежные вопросы