Расчет угла между двумя векторами - PullRequest
0 голосов
/ 08 ноября 2019

Я хочу вычислить угол между двумя System.Numerics.Vector3, но я не могу найти какую-либо функцию для этого. Google находит результаты только для 2d баллов. Я хочу реализовать это в C #.

1 Ответ

3 голосов
/ 08 ноября 2019
var v = new Vector3(1, 2, 3);
var u = new Vector3(4, 5, 6);
var angleInRadians = Math.Acos(Vector3.Dot(v, u) / (v.Length() * u.Length()));

Имейте в виду, что ACos возвращает радианы, поэтому вам может потребоваться преобразовать его в градусы. Результирующее значение должно быть от 0 до 180 градусов. Вы также должны убедиться, что векторы имеют ненулевую длину.

Источник:

https://math.stackexchange.com/questions/974178/how-to-calculate-the-angle-between-2-vectors-in-3d-space-given-a-preset-function

...