# HG changeset patch # User Santeri Piippo # Date 1516828441 -7200 # Node ID 02e7e1d73ebbe04ceed70ed734bee52cb3f72c1c # Parent 0d9ca37901ed1421b86b3aee9c8b69ede47fd2f8 Fix math domain errors in vector_angle diff -r 0d9ca37901ed -r 02e7e1d73ebb geometry.py --- a/geometry.py Tue Jan 23 15:30:48 2018 +0200 +++ b/geometry.py Wed Jan 24 23:14:01 2018 +0200 @@ -393,6 +393,9 @@ cosine /= vec_1.length() * vec_2.length() except ZeroDivisionError: return 0 + # Fix the cosine, it can go outside bounds due to rounding errors, + # e.g. 1.0000000000000002, which then causes a math domain error. + cosine = min(max(-1, cosine), 1) angle = acos(cosine) if normalized and angle > π / 2: angle = π - angle