blob: b5e52e312838c3c11c4d1fc773f0e4fd2754b90e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
# import
import math
import numpy as np
import matplotlib.pyplot as plt
# pol[x, y, z]
x = 1
y = 2
z = 3
pol = [x, y, z]
# define r, theta, phi
r = 0
theta = 0
phi = 0
kart = [0, 0, 0]
def poltokart(pol):
# split up list
x = pol[0]
y = pol[1]
z = pol[2]
# radius
r = np.sqrt(np.power(x, 2) + np.power(y, 2) + np.power(z, 2))
# theta
a = np.sqrt(x^2 + y^2 + z^2)
b = ((z) / a)
b = b * math.pi / 180
theta = np.arccos(b)
# phi
if x > 0:
phi = np.arctan(y/x)
elif x == 0:
phi = np.sign(y)*(math.pi/2)
elif x < 0 and y >= 0:
phi = np.arctan(y/x) + math.pi
elif x < 0 and y < 0:
phi = np.arctan(y/x) - math.pi
# write to cartesian list
kart[0] = r
kart[1] = theta
kart[2] = phi
# run
poltokart(pol)
print("{:<15}{:<60}".format("polar:", str(pol) ))
print("{:<15}{:<60}".format("cartesian:", str(kart) ))
|