# sph2cart


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

# 语法

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

# 说明

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

# 示例

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

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

using TyMath
theta = [0.7854 0.7854 -0.7854 -0.7854; 2.3562 2.3562 -2.3562 -2.3562]
phi = [0.6155 -0.6155 0.6155 -0.6155; 0.6155 -0.6155 0.6155 -0.6155]
r = 1.7321*ones(2,4)
x,y,z = sph2cart(theta,phi,r)
x = 2×4 Matrix{Float64}:
  1.00001   1.00001   1.00001   1.00001
 -1.00002  -1.00002  -1.00002  -1.00002

y = 2×4 Matrix{Float64}:
 1.00002  1.00002  -1.00002  -1.00002
 1.00001  1.00001  -1.00001  -1.000011

z = 2×4 Matrix{Float64}:
 1.00006  -1.00006  1.00006  -1.00006
 1.00006  -1.00006  1.00006  -1.00006

# 输入参数

azimuth - 方位角
标量 | 向量 | 矩阵 | 多维数组

方位角,指定为标量、向量、矩阵或多维数组。azimuth、elevation 和 r 的大小必须相同,或者其中任一个可以为标量。

azimuth 是在 x-y 平面上从 x 轴的正向测量的逆时针角度(以弧度为单位)。

数据类型: Int | Float

复数支持:

elevation - 仰角
标量 | 向量 | 矩阵 | 多维数组

仰角,指定为标量、向量、矩阵或多维数组。azimuth、elevation 和 r 的大小必须相同,或者其中任一个可以为标量。

elevation 是与 x-y 平面之间形成的仰角(以弧度为单位)。

数据类型: Int | Float

复数支持:

r - 半径
标量 | 向量 | 矩阵 | 多维数组

半径,指定为标量、向量、矩阵或多维数组。azimuth、elevation 和 r 的大小必须相同,或者其中任一个可以为标量。

r 的长度单位可以使用任意值,而且输出数组 x、y 和 z 使用相同的单位。

数据类型: Int | Float

复数支持:

# 输出参数

x,y,z - 笛卡尔坐标
数组

笛卡尔坐标,以数组形式返回。

数据类型: Int | Float

复数支持:

# 算法

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

x = r .* cos(elevation) .* cos(azimuth)

y = r .* cos(elevation) .* sin(azimuth)

z = r .* sin(elevation)

# 另请参阅

cart2pol | cart2sph | pol2cart