Даны длины сторон треугольника и необходимо найти углы треугольника. При решении этой задачи я использую теорему косинусов
let triangleAngles = (a, b, c) => {
let a1, a2, a3, cosA, cosB, cosC;
cosA = (b*b + c*c - a*a) / (2*b*c);
cosB = (a*a + c*c - b*b) / (2*a*c);
cosC = (a*a + b*b - c*c) / (2*a*b);
a1 = (b*b) + (c*c) - ((2*b*c) * Math.cos(cosA));
a2 = (b*b) + (c*c) - ((2*c*a) * Math.cos(cosB));
a3 = (b*b) + (a*a) - ((2*b*a) * Math.cos(cosC));
return [Math.round(a1), Math.round(a2), Math.round(a3)];
}
console.log(triangleAngles(4,4,4));
console.log(triangleAngles(3,4,5));
Первый вариант считает правильно возвращает углы в 60 градусов, в вот при втором случае получается массив [68, 65, 49], это не верно. Подскажите, где ошибся в расчётах :)
Чтобы посчитать углы, нужно к значению косинуса (cosA
и т.д.) применить функцию арккосинус (Math.acos
). Результат будет в радианах, их можно перевести в градусы, умножив на 180 и разделив на Pi
angleA = Math.acos(cosA) * 180 / Math.PI;
let triangleAngles = (a, b, c) => {
let a1, a2, a3, cosA, cosB, cosC;
cosA = (b*b + c*c - a*a) / (2*b*c);
cosB = (a*a + c*c - b*b) / (2*a*c);
cosC = (a*a + b*b - c*c) / (2*a*b);
angleA = Math.acos(cosA) * 180 / Math.PI;
angleB = Math.acos(cosB) * 180 / Math.PI;
angleC = Math.acos(cosC) * 180 / Math.PI;
return [Math.round(angleA), Math.round(angleB), Math.round(angleC)];
}
console.log(triangleAngles(4,4,4));
console.log(triangleAngles(3,4,5));
Выражения же для a1,a2,a3 бессмысленны.
Вот так:
a1 = (b*b) + (c*c) - (2*b*c) * cosA;
можно посчитать квадрат третьей стороны, но она и так известна
Виртуальный выделенный сервер (VDS) становится отличным выбором
Решил написать свой полифил для bind, функцию, которую оборачивать, планирую брать из thisНо получаю ошибку, что не видит мою функцию, что я записал...
Задача,- узнать дистанции до точки, от нескольких "пунктов отправления"Есть,- массив координат точек А которые в цикле и перебираются, и неизменная...
Передаю в функцию json файл c 4 объектами на выход получаю только 3 внутри функции все 4 объектаКуда теряется 2 объект?