Как я могу отобразить оба угла (тэта и фи) сферических координат на 360 градусов

Чтобы получить сферические координаты (тэта, фи и альфа), я использую этот код:

double phi_rad = atan2f(z,sqrt((x*x)+(y*y)));
double theta_rad = atan2f(y, x);
double r = sqrt((x*x)+(y*y)+(z*z));

И чтобы отобразить тета на 0-360 градусов, я использую этот код:

double theta_deg = (theta_rad/M_PI*180) + (theta_rad > 0 ? 0 : 360);

Но как я могу сопоставить фи до 0-360 градусов? Я попробовал тот же принцип, который я использовал для theta_deg, но он не очень хорошо работает.

1 ответ

Если phi - это ваш азимутальный угол (от 0 до 2π), а theta - ваш полярный угол (от 0 до π), вы можете сделать:

double phi_rad = atan2(y,x);
double theta_rad = acos(z);

Тогда вы можете просто конвертировать из радианов в градусы, используя стандарт:

double rad2deg(double rad)
{
    return rad * 180.0 / M_PI;
}
Другие вопросы по тегам