# https://mathtrain.jp/rthetaphi
"
x=r*sin(θ)*cos(φ)
y=r*sin(θ)*sin(φ)
z=r*cos(θ)
θ:π/2-緯度
φ:経度

r=sqrt(x^2+y^2+z^2)
θ=acos(z/sqrt(x^2+y^2+z^2))
φ=acos(x/sqrt(x^2+y^2))
"
# 直交座標を極座標に
c2p <- function(xyz){ # (x,y,z) -> (θ,φ) Cartesian 2 Polar
x=xyz[1];y=xyz[2];z=xyz[3]
r=sqrt(x^2+y^2+z^2) # =1になるx,y,zの組合せ
theta=acos(z/sqrt(x^2+y^2+z^2)) # = acos(z) [0,π]の値
phi=ifelse(y>0,acos(x/sqrt(x^2+y^2)), # y>0ならφ < π
2*pi-acos(x/sqrt(x^2+y^2)))# y<0ならφ > π
c(theta,phi)
}