坐标之间的Python转换

2024-05-15 00:28:06 发布

您现在位置:Python中文网/ 问答频道 /正文

有不同坐标系之间的转换函数吗?

例如,Matlab有[rho,phi] = cart2pol(x,y)用于从笛卡尔坐标到极坐标的转换。好像应该是在纽比或者希比。


Tags: 函数坐标系phimatlabrho极坐标cart2pol
3条回答

现有的答案可以简化为:

from numpy import exp, abs, angle

def polar2z(r,theta):
    return r * exp( 1j * theta )

def z2polar(z):
    return ( abs(z), angle(z) )

甚至:

polar2z = lambda r,θ: r * exp( 1j * θ )
z2polar = lambda z: ( abs(z), angle(z) )

注意这些也适用于数组!

rS, thetaS = z2polar( [z1,z2,z3] )
zS = polar2z( rS, thetaS )

使用numpy,可以定义以下内容:

import numpy as np

def cart2pol(x, y):
    rho = np.sqrt(x**2 + y**2)
    phi = np.arctan2(y, x)
    return(rho, phi)

def pol2cart(rho, phi):
    x = rho * np.cos(phi)
    y = rho * np.sin(phi)
    return(x, y)

您可以使用cmath模块。

如果数字被转换成复杂格式,那么对数字调用polar方法就更容易了。

import cmath
input_num = complex(1, 2) # stored as 1+2j
r, phi = cmath.polar(input_num)

相关问题 更多 >

    热门问题