geometry.py

changeset 103
662de6b8cfc2
parent 92
b8d72909d593
--- a/geometry.py	Tue Aug 25 22:34:26 2020 +0300
+++ b/geometry.py	Tue Aug 25 23:04:27 2020 +0300
@@ -195,20 +195,16 @@
     def perimeter_lines(self):
         for v1, v2 in pairs(self.vertices):
             yield LineSegment(v1, v2)
-    @property
-    def angles(self):
-        from math import acos, isclose
+    def angle_cosines(self):
+        from math import isclose
         for v1, v2, v3 in pairs(self.vertices, count = 3):
             vec1 = (position_vector(v3) - position_vector(v2)).normalized()
             vec2 = (position_vector(v1) - position_vector(v2)).normalized()
             if not isclose(vec1.length(), 0) and not isclose(vec2.length(), 0):
                 cosine = dot_product(vec1, vec2) / vec1.length() / vec2.length()
-                yield acos(cosine)
-    @property
-    def smallest_angle(self):
-        return min(
-            angle_magnitude_key(angle)
-            for angle in self.angles)
+                yield cosine
+            else:
+                yield 1 # cos(0)
     @property
     def hairline_ratio(self):
         lengths = [line.length for line in self.perimeter_lines]

mercurial