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 轴上。