【常用公式】三维空间直角坐标与极坐标转换公式

三维空间直角坐标与极坐标转换公式

  • 坐标符号
  • 直角坐标转极坐标
  • 极坐标转直角坐标
  • MATLAB程序代码

坐标符号

直角坐标: ( x , y , z ) (x, y, z) (x,y,z)极坐标: ( r , θ , ϕ ) (r,\theta,\phi) (r,θ,ϕ)

注: r r r 表示极径的长度; θ \theta θ 表示直角坐标系中向量 ( x , y , z ) (x, y, z) (x,y,z) Z Z Z 轴正向的夹角; ϕ \phi ϕ 表示向量 ( x , y , z ) (x, y, z) (x,y,z) X Y XY XY 平面上的投影向量与 X X X 轴正向的夹角。

直角坐标转极坐标

{ r = x 2 + y 2 + z 2 θ = a r c t a n ( y / x ) ϕ = a r c c o s ( z / x 2 + y 2 + z 2 ) \begin{cases}r=\sqrt{x^2+y^2+z^2}\\ \theta=arctan(y/x)\\ \phi=arccos(z/\sqrt{x ^ 2 + y ^ 2 + z ^ 2}) \end{cases} r=x2+y2+z2 θ=arctan(y/x)ϕ=arccos(z/x2+y2+z2 )

注:若需要的 θ \theta θ 值在区间 [ 0 , π ] [0,\pi] [0,π],可按以下方式对 θ \theta θ 进行取值:
θ = { π + a r c t a n ( y / x ) x < 0 a r c t a n ( y / x ) x ≥ 0 \theta= \left\{ \begin{aligned} \pi + arctan(y/x)&&x<0\\ arctan(y/x)&&x≥0 \end{aligned} \right. θ={π+arctan(y/x)arctan(y/x)x<0x0

极坐标转直角坐标

{ x = r ∗ s i n ( ϕ ) ∗ c o s ( θ ) y = r ∗ s i n ( ϕ ) ∗ s i n ( θ ) y = r ∗ c o s ( ϕ ) \begin{cases} x=r*sin(\phi) * cos(\theta)\\ y=r*sin(\phi) * sin(\theta)\\ y=r*cos(\phi) \end{cases} x=rsin(ϕ)cos(θ)y=rsin(ϕ)sin(θ)y=rcos(ϕ)

MATLAB程序代码

%直角坐标转极坐标
function P = Cart2Polar(p)
    P(1) = norm(p);
    P(2) = atan(p(2) / p(1));
    P(3) = acos(p(3) / norm(p));
    if p(1) < 0
        P(2) = P(2) + pi;
    end
end

%极坐标转直角坐标
function P = Polar2Cart(p)
    P = zeros(1, 3);
    P(1) = sin(p(3)) * cos(p(2));
    P(2) = sin(p(3)) * sin(p(2));
    P(3) = cos(p(3));
    P = P .* p(1);
end

你可能感兴趣的:(数学公式,算法,几何学)