5月 17, 2024
C++プログラム
const double PI = 3.14159265358979323846;
void calc(
    const double x1,
    const double y1,
    const double z1,
    const double azimuth,
    const double depression, 
    double *x2, 
    double *y2, 
    double *z2)
{
    const double dist = sqrt(x1*x1 + y1*y1 + z1*z1);
    const double azimuth_rad = atan2(y1, x1) + azimuth * PI/180.0;
    const double depression_rad = atan2(z1, sqrt(x1*x1+y1*y1)) + depression * PI/180.0;
    
    *x2 = dist * cos(azimuth_rad) * cos(depression_rad);
    *y2 = dist * sin(azimuth_rad) * cos(depression_rad);
    *z2 = dist * sin(depression_rad);
    return;
}
参考