Вычислить направление вектора на 3D - PullRequest
0 голосов
/ 21 января 2020

Я хочу знать теорию вычисления направления вектора.

Например, я бы хотел, чтобы P2 следовал за P1 прямо позади, а P1 двигался вокруг Z.

example picture

Предположим, что P1 не идет в отрицательном направлении Z, поэтому у P1 будут случаи: (+, +, +), (+, -, +), (-, -, +), (-, +, +).

В этом случае я могу вычислить скаляр, но не могу рассчитать направление P2.

Например, я просто вычисляю координаты P1 и P2 и помещаю P2 с результатом, P2 может go перед P1 не отставать.

Поэтому мне интересно, как я могу рассчитать направление вектора ?

Я хочу знать «теорию».

Спасибо за вашу помощь.

1 Ответ

1 голос
/ 21 января 2020

Для начала:

Пусть P1 перемещается вокруг оси Z, и его позиция (w равна angular скорость)

Z1 = Z0
X1 = R * Cos(w * t)
Y1 = R * Sin(w * t)

Начальная позиция для P2 равна

Z2 = Z0 // the same height, so later Z-component is not considered, vz = 0
X2 = 2 * R
Y2 = 0

На каждом шаге мы должны вычислить положение P1 и дать P2 некоторое смещение, чтобы следовать за P1.

dx = X1 - X2
dy = Y1 - Y2
vx = dx * C
vy = dy * C
X2 = X2 + vx * dt
Y2 = Y2 + vy * dt

здесь dt - временной интервал между вычислениями, C - некоторая скорость - или постоянная, или зависящая от расстояния с некоторыми ограничениями.

v (vx, vy, vz) - вектор, указывающий от текущей позиции P2 к текущей позиции P1.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...