38 lines
843 B
Python
38 lines
843 B
Python
|
"""
|
||
|
Point module
|
||
|
SPDX - License - Identifier: LGPL - 3.0 - or -later
|
||
|
Copyright © 2022 Concordia CERC group
|
||
|
Project Coder Pilar Monsalvete Alvarez de Uribarri pilar.monsalvete@concordia.ca
|
||
|
"""
|
||
|
|
||
|
import math
|
||
|
|
||
|
|
||
|
class Point:
|
||
|
"""
|
||
|
Point class
|
||
|
"""
|
||
|
|
||
|
def __init__(self, coordinates):
|
||
|
self._coordinates = coordinates
|
||
|
|
||
|
@property
|
||
|
def coordinates(self):
|
||
|
"""
|
||
|
Get point coordinates
|
||
|
:return: [ndarray]
|
||
|
"""
|
||
|
return self._coordinates
|
||
|
|
||
|
def distance_to_point(self, other_point):
|
||
|
"""
|
||
|
Calculates distance between points in an n-D Euclidean space
|
||
|
:param other_point: point or vertex
|
||
|
:return: float
|
||
|
"""
|
||
|
power = 0
|
||
|
for dimension in enumerate(self.coordinates):
|
||
|
power += math.pow(other_point.coordinates[dimension]-self.coordinates[dimension], 2)
|
||
|
distance = math.sqrt(power)
|
||
|
return distance
|