2026a

# sph2cartvec


将向量从球面坐标转换成笛卡尔坐标

函数库: TyCommunication

# 语法

vr = sph2cartvec(vs, az, el)

# 说明

vr = sph2cartvec(vs, az, el) 将一个或一组向量 vs 的分量,从球面坐标转化为局部笛卡尔坐标 vr。球面坐标表示是以 为基的向量分量集合。球面基的方向取决于它在球面上的位置,位置由方位角 az 和仰角 el 决定。 示例

# 示例

方位向量的笛卡尔表示

创建一个方位角 45° 和仰角 45° 的球面向量,其指向方位角的方向。计算它的笛卡尔坐标。

using TyCommunication
vs = [1;0;0]
vr = sph2cartvec(vs,45,45)
vr = 3-element Vector{Float64}:
 -0.7071067811865476
  0.7071067811865476
  0.0

复数情况:

vs = [1 1 0+im; 0 0 1+im; 0 0 1+im]
vr = sph2cartvec(vs, 45, 45)
vr = 3×3 Matrix{ComplexF64}:
 -0.707107+0.0im  -0.707107+0.0im      0.0-0.707107im
  0.707107+0.0im   0.707107+0.0im      0.0+0.707107im
       0.0+0.0im        0.0+0.0im  1.41421+1.41421im

# 输入参数

vs - 用球基表示的向量
3 × 1 列向量| 3 × N 矩阵

以 3 × 1 列向量或 3 × N 矩阵表示球基向量。vs 的每一列包含用右手坐标系下的球基底 表示的向量的三个分量。

例如:[4.0; -3.5; 6.3]

数据类型:Float64

支持复数:是

az - 方位角
范围在 [-180,180] 中的标量

方位角,指定为范围在 [-180,180] 中的标量,单位是度。要定义球面上一点的方位角,需要构造一个从原点到该点的向量。方位角是从 x 正轴到向量在 xy 平面上的正交投影的角度。例如,方位角 0 和仰角 0 表示 x 轴上的一个点,而方位角 90° 和仰角 0 表示 y 轴上的一个点。

例如:45

数据类型:Float64

el - 仰角
范围在 [-90,90] 中的标量

方位角,指定为范围在 [-90,90] 中的标量,单位是度。要定义球面上一点的仰角,需要构造一个从原点到该点的向量。仰角是它在 xy 平面上的正交投影与向量本身之间的角。例如,0 仰角定义为球面的赤道,±90° 仰角定义为球面的北极和南极。

例如:30

数据类型:Float64

# 输出参数

vr - 用笛卡尔基表示的向量
3 × 1 列向量| 3 × N 矩阵

笛卡尔向量是 3 × 1 列向量或 3 × N 矩阵,它的维数与 vs 相同。vr 的每一列包含用右手坐标系下的笛卡尔基底 x,y,z 表示的一个向量的三个分量。

# 更多相关

向量的球基表示

球基向量是空间上任意点沿径向和角度方向的基向量的局部集合。

球面基是在球面上三个相互正交的单位向量 的集合。第一个单位向量以恒定的半径和仰角指向其方位线。第二个单位向量以恒定的方位角和半径指向其高程线。它们都相切与球面。第三个单位向量是指向外部的。

基底的方向在球面上一点一点变化但与半径无关所以当你沿着半径向外移动时,基的方向保持不变。下图说明了球基向量的方向是方位角和仰角的函数:

对于球面上由 azel 指定的任意点,基向量为:

任何向量都可以写成在这个基底中的分量: 。 球基分量和笛卡尔分量之间的转换采用这种形式:

# 另请参阅

cart2sphvec