Как сделать функцию превращающую координаты в градусы?
У меня есть координаты 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