Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中,如何将列表从极坐标转换为笛卡尔坐标?_Python - Fatal编程技术网

在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
的一个因子