Как я могу отобразить оба угла (тэта и фи) сферических координат на 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;
}