Commit 3977a49c09db1eab6a1973d4a44508e6b0bd1546

Authored by tfmoraes
1 parent b90e16c5

Add: a module that contains math functions

Showing 2 changed files with 36 additions and 0 deletions   Show diff stats
.gitattributes
@@ -187,6 +187,7 @@ invesalius/gui/widgets/platebtn.py -text @@ -187,6 +187,7 @@ invesalius/gui/widgets/platebtn.py -text
187 invesalius/gui/widgets/slice_menu.py -text 187 invesalius/gui/widgets/slice_menu.py -text
188 invesalius/i18n.py -text 188 invesalius/i18n.py -text
189 invesalius/invesalius.py -text 189 invesalius/invesalius.py -text
  190 +invesalius/math_utils.py -text
190 invesalius/presets.py -text 191 invesalius/presets.py -text
191 invesalius/project.py -text 192 invesalius/project.py -text
192 invesalius/reader/__init__.py -text 193 invesalius/reader/__init__.py -text
invesalius/math_utils.py 0 → 100644
@@ -0,0 +1,35 @@ @@ -0,0 +1,35 @@
  1 +#!/usr/bin/env python
  2 +# -*- coding: utf-8 -*-
  3 +
  4 +import math
  5 +import numpy
  6 +
  7 +def calculate_distance(p1, p2):
  8 + """
  9 + Calculates the euclidian distance between p1 and p2 points.
  10 +
  11 + >>> calculate_distance((0, 0), (1, 0))
  12 + 1.0
  13 +
  14 + >>> calculate_distance((0, 0), (0, 1))
  15 + 1.0
  16 + """
  17 + return math.sqrt(sum([(j-i)**2 for i,j in zip(p1, p2)]))
  18 +
  19 +def calculate_angle(v1, v2):
  20 + """
  21 + Calculates the angle formed between vector v1 and v2.
  22 +
  23 + >>> calculate_angle((0, 1), (1, 0))
  24 + 90.0
  25 +
  26 + >>> calculate_angle((1, 0), (0, 1))
  27 + 90.0
  28 + """
  29 + cos_ = numpy.dot(v1, v2)/(numpy.linalg.norm(v1)*numpy.linalg.norm(v2))
  30 + angle = math.degrees(math.acos(cos_))
  31 + return angle
  32 +
  33 +if __name__ == '__main__':
  34 + import doctest
  35 + doctest.testmod()