Здравствуйте! Проблема такая. У меня есть формула расчета угла между векторами. Она стандартная:
И вот есть два вектора, угол между которыми никак не вычислить, так как правая часть уравнения меньше -1. Вот эти вектора:
var x1 = -0.045797169475341334, y1 = -0.9989507591808752;
var x2 = 0.04579716947534099, y2 = 0.9989507591808753;
В итоге, выражение:
(x1 * x2 + y1 * y2) / Math.sqrt(Math.pow(x1, 2) + Math.pow(y1, 2)) * Math.sqrt(Math.pow(x2, 2) + Math.pow(y2, 2))
дает результат:
-1.0000000000000002
И если взять арккосинус этого числа, то будет NaN, что и понятно, так как он определен на промежутке от -1 до 1.
Как мне скорректировать формулу, чтобы этой ошибки не было?