2026a

# cart2sph


将笛卡尔坐标转换为球面坐标

函数库: TyMath

# 语法

azimuth,elevation,r = cart2sph(x,y,z)

# 说明

azimuth,elevation,r = cart2sph(x,y,z) 将笛卡尔坐标数组 x、y 和 z 的对应元素转换为球面坐标 azimuth、elevation 和 r。示例

# 示例

笛卡尔坐标到球面坐标

将矩阵 x、y 和 z 中对应项定义的笛卡尔坐标转换为球面坐标 taz、el 和 r。这些点对应于立方体的八个顶点。

using TyMath
x = [1 1 1 1; -1 -1 -1 -1]
y = [1 1 -1 -1; 1 1 -1 -1]
z = [1 -1 1 -1; 1 -1 1 -1]
az,el,r = cart2sph(x,y,z)
az = 2×4 Matrix{Float64}:
 0.785398  0.785398  -0.785398  -0.785398
 2.35619   2.35619   -2.35619   -2.35619

el = 2×4 Matrix{Float64}:
 0.61548  -0.61548  0.61548  -0.61548
 0.61548  -0.61548  0.61548  -0.61548

r = 2×4 Matrix{Float64}:
 1.73205  1.73205  1.73205  1.73205
 1.73205  1.73205  1.73205  1.73205

# 输入参数

x,y,z - 笛卡尔坐标
标量 | 向量 | 矩阵 | 多维数组

笛卡尔坐标,指定为标量、向量、矩阵或多维数组。x、y 和 z 的大小必须相同,或者其中任意一项可以为标量。

数据类型: Int | Float

复数支持:

# 输出参数

azimuth - 方位角
数组

方位角,以数组形式返回。theta 是从 x 轴的正向测量的在 x-y 平面中的逆时针角度,以弧度为单位。角度值在 [-pi pi] 范围内。

数据类型: Int | Float

elevation - 仰角
数组

仰角,以数组形式返回。phi 是与 x-y 平面之间形成的仰角,以弧度为单位。角度值在 [-pi/2, pi/2] 范围内。

数据类型: Int | Float

r - 半径
数组

半径,以数组形式返回。r 是从原点到某点的距离。r 的长度单位可以是与输入数组 x、y 和 z 的单位匹配的任意单位。

数据类型: Int | Float

# 算法

从三维笛卡尔坐标到球面坐标的映射为:

azimuth = atan(y,x)

elevation = atan(z,sqrt(x.^2 + y.^2))

r = sqrt(x.^2 + y.^2 + z.^2)

球面坐标表示法不是标准表示法。对于 cart2sph 函数而言,elevation 是从 x-y 平面进行测量的。请注意,如果 elevation = 0,则该点位于 x-y 平面中。如果 elevation = pi/2,则该点位于正 z 轴上。

# 另请参阅

cart2pol | pol2cart | sph2cart