【发布时间】:2020-02-14 03:22:22
【问题描述】:
我想将许多点从笛卡尔坐标系转换为极坐标系。
这是我的代码:
import numpy as np
x = 1
y = 1
def cart_to_pol(x, y):
rho = np.sqrt(x**2 + y**2)
phi = np.arctan2(y, x)
return(rho, phi)
print(cart_to_pol(x, y))
但我在数组中有很多点需要转换。
- 有什么方法可以不一个一个地同时对所有点进行转换吗?
- 例如,如果中心不在 (0,0),而是在 (50,50)。编码中如何设置圆心?
- 度数以上代码的结果是半径(0~2pi),但我需要角度度数(0~360)。我试试
phi = np.arctan2(y, x)*180/pi但结果是错误的。我该如何解决?
谢谢!!!
points = [(10, 43), (10, 44), (10, 45), (10, 46), (10, 47), (10, 48), (10, 49),
(10, 50), (10, 51), (10, 52), (10, 53), (10, 54), (10, 55), (10, 56), (11, 39),
(11, 40), (11, 41), (11, 42), (11, 57), (11, 58), (11, 59), (11, 60), (12, 36),
(12, 37), (12, 38), (12, 61), (12, 62), (12, 63), (13, 33), (13, 34), (13, 35),
(13, 64), (13, 65), (13, 66), (14, 31), (14, 32), (14, 33), (14, 66), (14, 67),
(14, 68), (15, 30), (15, 31), (15, 68), (15, 69), (16, 28), (16, 29), (16, 70),
(16, 71), (17, 27), (17, 72), (18, 25), (18, 26), (18, 73), (18, 74), (19, 24)]
【问题讨论】:
-
你能在 for 循环或列表理解中运行你的代码吗?您是在使用
np.pi还是将pi设置为某个值?