Как вернуться с угла atan2 обратно в Координату

Я рассчитал угол (-6/35) используя atan2(-6/35),
Результат -9.7275785514016047,

Теперь, чтобы вернуться, я использовал формулу из Википедия

введите описание изображения здесь

distance = sqrt(6*6+35*35);
angleRelativeToPatternOrigin = -9.7275785514016047;

double  x1 = distance * cos(angleRelativeToPatternOrigin);
double  y1 = distance * sin(angleRelativeToPatternOrigin);

Я взял, чтобы получить координаты (-6/35)
Но я получил (-33.895012797701419/10.589056022311761)

Так что я думаю, что это неправильно, потому что atan2 определяется более 4 квадранты и sin а также cos определены только над 2.

Это правильно?
Как это сделать правильно?

Редактировать:

Теперь, прежде всего, я прошу прощения за неправильное описание моего вопроса.
Я на самом деле сделал следующее

int main(int argc, char* argv[])
{
int x = -6;
int y = 35;
double radian = atan2(x,y);  // this was wrong. atan2(y,x) is correct.
double degree = radian  * (360 / (2 * 3.14159265358979323846));
double distance = sqrt(6*6+35*35);

double x1 = distance * cos(degree); // Wrong because I used degree
double y1 = distance * sin(degree); // instead of radian

return 0;
}

0

Решение

Для того, чтобы использовать функцию atan2, чтобы получить угол, а затем использовать грех & чтобы вернуться к декартовым координатам, вам нужно использовать их немного по-другому, как вы уже сказали.

Как сказали LightnessRacesInOrbit и user38034, функция atan2 принимает 2 параметра. Первый — это у, второй — это х.

Рассмотрим следующий фрагмент JS:

var x = -6.0;
var y = 35.0;

var at = Math.atan2(y, x);
console.log(at);

var dist = (x*x) + (y*y);
dist = Math.sqrt(dist);
console.log(dist);

var x1 = dist * Math.cos(at);
var y1 = dist * Math.sin(at);

console.log( {x:x1, y:y1} );

Выход из этого фрагмента:

1.740574600763235
35.510561809129406
Object {x: -5.999999999999998, y: 35}
3

Другие решения

Ваше использование atan2 неправильно Объявление функции atan2 является:

double atan2 (double y, double x);

Итак, угол:

double angle = atan2(35, -6); // 1.74057 radians or 99.72758 degree
1

По вопросам рекламы [email protected]