about summary refs log tree commit diff
path: root/convert_koordinate.py
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) ))