在python中,如何将列表从极坐标转换为笛卡尔坐标?
我有两张单子。一个包含到中心的距离,另一个包含角度。现在,我如何将这两个列表转换为笛卡尔坐标,并将它们放在一个数组中 例如:在python中,如何将列表从极坐标转换为笛卡尔坐标?,python,Python,我有两张单子。一个包含到中心的距离,另一个包含角度。现在,我如何将这两个列表转换为笛卡尔坐标,并将它们放在一个数组中 例如: distance = [10,12,10] angle= [0,45,90] 如何将它们转换为笛卡尔坐标{x,y}cordinate。它们应该以[(x,y)]的形式出现在列表中您可以使用numpy来计算正弦和余弦函数 import numpy as np import math distance = [10,12,10] angle= [0,45,90] coord
distance = [10,12,10]
angle= [0,45,90]
如何将它们转换为笛卡尔坐标{x,y}cordinate。它们应该以[(x,y)]的形式出现在列表中您可以使用numpy来计算
正弦
和余弦
函数
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)
要转换为笛卡尔坐标,需要以下方程式:
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
函数实质上结合了这两个列表。要了解真正的解释,请参见此答案中有一个错误-您正在将度数传递到cos
和sin
中,但这些函数期望辐射度,但仍缺少pi
的一个因子