Ideal control point distance should never be greater than the provided radius.
diff --git a/src/shapes/path.cpp b/src/shapes/path.cpp
index 7aa43dc..cd7fe1d 100644
--- a/src/shapes/path.cpp
+++ b/src/shapes/path.cpp
@@ -17,8 +17,9 @@
     // Get the angle between next and prev
     float angle = fabs(atan2(Vec2D::cross(toPrev, toNext), Vec2D::dot(toPrev, toNext)));
 
-    return (4.0f / 3.0f) * tan(math::PI / (2.0f * ((2.0f * math::PI) / angle))) * radius *
-           (angle < math::PI / 2 ? 1 + cos(angle) : 2.0f - sin(angle));
+    return min(radius,
+               (4.0f / 3.0f) * tan(math::PI / (2.0f * ((2.0f * math::PI) / angle))) * radius *
+                   (angle < math::PI / 2 ? 1 + cos(angle) : 2.0f - sin(angle)));
 }
 
 StatusCode Path::onAddedClean(CoreContext* context) {