如何在 Python 中将列表从极坐标转换为笛卡尔坐标?



我有两个列表。一个包含与中心的距离,另一个包含角度。现在如何将这两个列表转换为笛卡尔并将它们放在一个数组中?

例如:

distance = [10,12,10]
angle= [0,45,90]

我怎样才能将它们转换为笛卡尔坐标 {x,y} 坐标。它们应该在列表中显示为 [(x,y(]

要转换为笛卡尔坐标,您需要以下等式:

x = r*cos(phi)
y = r*sin(phi)

有了这个,我们可以使用python列表推导来计算新列表:

import math 
cart = [(r*math.cos(phi*math.pi/180), r*math.sin(phi*math.pi/180)) for r, phi in zip(distance, angle)]

您需要将角度转换为带有系数pi/180弧度。

zip函数实质上结合了这两个列表。有关实际说明,请参阅文档

您可以使用numpy 来计算sinecosine函数。

import numpy as np
import math
distance = [10,12,10]
angle= [0,45,90]
coord = []
for i,j in zip(distance,angle):
coord.append((i*np.cos(math.pi*j/180), i*np.sin(math.pi*j/180)))
print(coord)

最新更新