<p>用复杂的数学</p>
<pre><code>import numpy as np
x = 1
y = 1
def cart_to_pol(x, y, x_c = 0, y_c = 0, deg = True):
complex_format = x - x_c + 1j * (y - y_c)
return np.abs(complex_format), np.angle(complex_format, deg = deg)
print(cart_to_pol(x, y))
(1.4142135623730951, 45.0)
</code></pre>
<p>只需将您的中心坐标传递给<code>(x_c, y_c)</code>,或者您可以使用二维数组:</p>
<pre><code>def cart_to_pol(coords, center = [0,0], deg = True):
complex_format = np.array(coords, dtype = float).view(dtype = np.complex) -\
np.array(center, dtype = float).view(dtype = np.complex)
return np.abs(complex_format).squeeze(), np.angle(complex_format, deg = deg).squeeze()
print(cart_to_pol(points))
(array([44.14748011, 45.12205669, 46.09772229, 47.07440918, 48.05205511,
49.03060269, 50.009999 , 50.99019514, 51.97114584, 52.95280918,
53.93514624, 54.91812087, 55.90169944, 56.88585061, 40.52159918,
41.48493703, 42.44997055, 43.41658669, 58.05170109, 59.03388857,
60.01666435, 61. , 37.94733192, 38.89730068, 39.84971769,
62.16912417, 63.15061362, 64.13267498, 35.4682957 , 36.40054945,
37.33630941, 65.30696747, 66.28725368, 67.26812024, 34.0147027 ,
34.92849839, 35.84689666, 67.46851117, 68.44705983, 69.42621983,
33.54101966, 34.43835072, 69.63476143, 70.61161378, 32.24903099,
33.12099032, 71.80529228, 72.78049189, 31.90611227, 73.97972695,
30.8058436 , 31.6227766 , 75.18643495, 76.15773106, 30.61045573]), array([76.90810694, 77.19573393, 77.47119229, 77.73522627, 77.98852161,
78.23171107, 78.46537935, 78.69006753, 78.90627699, 79.11447295,
79.3150876 , 79.50852299, 79.69515353, 79.87532834, 74.24882634,
74.62374875, 74.98163937, 75.32360686, 79.07719528, 79.2611029 ,
79.43898931, 79.61114218, 71.56505118, 72.03086026, 72.47443163,
78.87081071, 79.04593736, 79.21570213, 68.49856568, 69.07549826,
69.62356479, 78.51800865, 78.69006753, 78.85711014, 65.69545073,
66.37062227, 67.0112832 , 78.02386756, 78.19756579, 78.366366 ,
63.43494882, 64.17900803, 77.56043798, 77.73522627, 60.2551187 ,
61.11341823, 77.12499844, 77.30041551, 57.80426607, 76.71513352,
54.24611275, 55.30484647, 76.14858099, 76.32869287, 51.63251462]))
</code></pre>