Как сделать функцию превращающую координаты в градусы?

У меня есть координаты x и y И мне нужно создать такую функцию

function fun(degrees, distance) { 
var x1 = distance * Math.cos(degrees); 
var y1 = distance * Math.sin(degrees);   
var arr = [x1, y1];
return arr;
}
alert (fun(90, 5)) ;

В которой если X и Y равно 0

то значения

degrees = 0 distance=5 будут равны X=0 Y=5

degrees = 90 distance=5 будут равны X=5 Y=0

degrees = 180 distance=5 будут равны X=0 Y=-5

degrees = 270 distance=5 будут равны X=-5 Y=0

degrees = 360 distance=5 будут равны X=0 Y=5

Но я не знаю как ее получить особенно когда

degrees = 100 distance=5 будут равны X=?? Y=??


Ответы (1 шт):

Автор решения: eri

x2,у2 - конец вектора, х1,у1 - начало вектора. х1,у1 можно принять нулю если угол нужно определить от начала координат.

dx = x2-x1
dy = y2-y1

angle = Math.atan2(dy, dx)
distance = Math.sqrt(dy*dy + dx*dx)

перевод обратно

x2 = x1 + Math.cos(angle)*distance
y2 = y1 + Math.sin(angle)*distance

angle в радианах тут везде. Перевод в градусы

degrees  = angle*180/Math.PI

angle = degrees*Math.PI/180
→ Ссылка