Преобразовать угол поворота в соотношение x и y
Я не могу понять как мне преобразовать угол в соотношение x и y (Я имею в виду в два числа модули которых в сумме дают 1)
Например:
- 90 = 1 и 0
- -90 = -1 и 0
- 0 = 0 и 1
- 180 = 0 и -1
- 45 = 0.5 и 0.5
Можете сделать пример двух таких функций для x и y пожалуйста
Ответы (1 шт):
Автор решения: eccs0103
→ Ссылка
Описание
По описанию вопроса становиться понятно, что вы хотите получить соотношение на которое разделяет линия прямой угол. Легче всего это делать с помощью тригонометрии:
То есть нам дают a. Мы считаем cos(a) и sin(a), потом считаем их сумму и вычисляем какая из них какую часть занимает.
Решение
const alpha = window.prompt(`Enter the angle`);
function degToRad(angle) {
return angle * (Math.PI / 180);
}
const x = Math.sin(degToRad(alpha));
const y = Math.cos(degToRad(alpha));
const sum = Math.abs(x) + Math.abs(y);
const xCoefficent = x / sum;
const yCoefficent = y / sum;
console.log(`X: ${xCoefficent.toFixed(4)}, Y: ${yCoefficent.toFixed(4)}`);
