2026a

# cart2pol


将笛卡尔坐标转换为极坐标或柱坐标

函数库: TyMath

# 语法

theta,rho = cart2pol(x,y)

theta,rho,z = cart2pol(x,y,z)

# 说明

theta,rho = cart2pol(x,y) 可将二维笛卡尔坐标数组 x 和 y 的对应元素变换为极坐标 theta 和 rho。示例


theta,rho,z = cart2pol(x,y,z) 可将三维笛卡尔坐标数组 x、y 和 z 变换为柱坐标 theta、rho 和 z。示例

# 示例

笛卡尔坐标到极坐标

将矩阵 x 和 y 中对应项定义的笛卡尔坐标转换为极坐标 theta 和 rho。

using TyMath
x = [5 3.5355 0 -10]
x = 1×4 Matrix{Float64}:
 5.0  3.5355  0.0  -10.0
y = [0 3.5355 10 0]
y = 1×4 Matrix{Float64}:
 0.0  3.5355  10.0  0.0
theta,rho = cart2pol(x,y)
theta = 1×4 Matrix{Float64}:
 0.0  0.785398  1.5708  3.14159

rho = 1×4 Matrix{Float64}:
 5.0  4.99995  10.0  10.0
笛卡尔坐标到柱坐标

将矩阵 x、y 和 z 中对应项定义的三维笛卡尔坐标转换为柱坐标 theta、rho 和 z。

using TyMath
x = [1, 2.1213, 0, -5]
x = 4-element Vector{Float64}:
  1.0
  2.1213
  0.0
 -5.0
y = [0, 2.1213, 4, 0]
y = 4-element Vector{Float64}:
 0.0
 2.1213
 4.0
 0.0
z = [7, 8, 9, 10]
z = 4-element Vector{Int64}:
  7
  8
  9
 10
theta,rho,z = cart2pol(x,y,z)
theta = 4-element Vector{Float64}:
 0.0
 0.7853981633974483
 1.5707963267948966
 3.141592653589793

rho = 4-element Vector{Float64}:
 1.0
 2.9999712298620467
 4.0
 5.0

z = 4-element Vector{Int64}:
  7
  8
  9
 10

# 输入参数

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

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

数据类型: Int | Float

复数支持:

# 输出参数

theta - 角坐标
数组

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

数据类型: Int | Float

rho - 径向坐标
数组

径向坐标,以数组形式返回。rho 是从原点到 x-y 平面上某点的距离。

数据类型: Int | Float

z - 仰角坐标
数组

仰角坐标,以数组形式返回。z 是高出 x-y 平面的高度。

数据类型: Int | Float

# 算法

从二维笛卡尔坐标到极坐标以及从三维笛卡尔坐标到柱坐标的映射为

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

# 另请参阅

cart2sph | pol2cart | sph2cart