class Tocka3D:
def __init__(self, x=0, y=0, z=0):
""" Inicializator preveri, da so lastnosti števila """
self._x = x
self._y = y
self._z = z
def _vrni_x(self):
""" Vrne vrednost lastnosti x """
return self._x
def _nastavi_x(self, x):
""" Nastavi vrednost lastnosti x """
self._x = x
def _vrni_y(self):
""" Vrne vrednost lastnosti y """
return self._y
def _nastavi_y(self, y):
""" Nastavi vrednost lastnosti y """
self._y = y
def _vrni_z(self):
""" Vrne vrednost lastnosti z """
return self._z
def _nastavi_z(self, z):
""" Nastavi vrednost lastnosti z """
self._z = z
x = property(
fget = _vrni_x, # Ime metode getter
fset = _nastavi_x # Ime metode setter
)
y = property(
fget = _vrni_y, # Ime metode getter
fset = _nastavi_y # Ime metode setter
)
z = property(
fget = _vrni_z, # Ime metode getter
fset = _nastavi_z # Ime metode setter
)
def __str__(self):
""" Vrne niz, ki vsebuje koordinate točke """
return "(" + str(self._x) + ", " + str(self._y) + ", " + str(self._z) + ")"
def zrcali(self):
""" Vrne točko, zrcaljeno preko koordinatnega izhodišča """
return Tocka(-self._x, -self._y, -self._z)
def razdalja(self):
""" Vrne razdaljo točke od koordinatnega izhodišča """
return ((self._x ** 2) + (self._y ** 2) + (self._z ** 2)) ** 0.5
def razdalja_do(self, tocka):
""" Vrne razdaljo do druge točke """
dx = self._x - tocka._x
dy = self._y - tocka._y
dz = self._z - tocka._z
return (dx ** 2 + dy ** 2 + dz ** 2) ** 0.5
def sredina(self, tocka):
""" Vrne središče med točkama """
mx = (self._x + tocka._x) / 2.0
my = (self._y + tocka._y) / 2.0
mz = (self._z + tocka._z) / 2.0
return Tocka(mx, my, mz)