Преобразовать угол поворота в соотношение x и y

Рейтинг: 0Ответов: 1Опубликовано: 06.02.2023

Я не могу понять как мне преобразовать угол в соотношение x и y (Я имею в виду в два числа модули которых в сумме дают 1)

Например:

  • 90 = 1 и 0
  • -90 = -1 и 0
  • 0 = 0 и 1
  • 180 = 0 и -1
  • 45 = 0.5 и 0.5

Можете сделать пример двух таких функций для x и y пожалуйста

Ответы

▲ 2Принят

Описание

По описанию вопроса становиться понятно, что вы хотите получить соотношение на которое разделяет линия прямой угол. Легче всего это делать с помощью тригонометрии:

То есть нам дают 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)}`);