Вы можете попробовать эту замечательную библиотеку. https://github.com/intuit/sdp
. На самом деле это новая единица масштаба, которая sdp
(масштабируемая дп ).
Векторные математические работы точно так же, как Вы думаете:
v3 = (v1 + v2)/2
// so:
v3.x = (v1.x + v2.x) / 2;
// same for Y and Z
Обычно лучше умножиться, чем делятся по причинам скорости при выполнении графики, программируя, таким образом, я рекомендовал бы это:
v3 = (v1 + v2) * 0.5f;
Если Вы только интересуетесь направлением, необходимо добавить их и нормализовать итоговый вектор,
(v1 + v2)/abs(v1 + v2)
добавление их и деление на два действительно работают
Легкий мысленный эксперимент: Сделайте это для единичных векторов в направлении X и Y. Интуитивно можно изобразить это, "среднее число" было бы единичным вектором под углом на 45 градусов и направо. Это точно, что происходит. Мысленный эксперимент предлагает, чтобы Вы нормализовали среднее число его величиной для получения единичного вектора. Я советовал бы сделать так.