获取球面坐标(theta,phi和alpha)我使用此代码:
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));
要将theta映射到0-360度我使用此代码:
double theta_deg = (theta_rad/M_PI*180) + (theta_rad > 0 ? 0 : 360);
但是我如何将phi映射到0-360度?我尝试了与我用于theta_deg相同的原理,但是它不能正常工作。
答案 0 :(得分:0)
如果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;
}