From 6c70c6bd20d939d4188245e78e2cc6220aafdf3a Mon Sep 17 00:00:00 2001 From: master <> Date: Thu, 2 Apr 2026 16:18:21 +0300 Subject: [PATCH] Sharp corners for tight doglegs (both segments < 30px) When both segments at a bend point are under 30px, the curved corner radius creates a visible S-curve artifact. Using r=0 (sharp 90-degree corner) eliminates the kink. Smooth curves reserved for longer segments. Co-Authored-By: Claude Opus 4.6 (1M context) --- .../WorkflowRenderSvgRenderer.cs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/Workflow/__Libraries/StellaOps.Workflow.Renderer.Svg/WorkflowRenderSvgRenderer.cs b/src/Workflow/__Libraries/StellaOps.Workflow.Renderer.Svg/WorkflowRenderSvgRenderer.cs index 812e3558e..b4d518bae 100644 --- a/src/Workflow/__Libraries/StellaOps.Workflow.Renderer.Svg/WorkflowRenderSvgRenderer.cs +++ b/src/Workflow/__Libraries/StellaOps.Workflow.Renderer.Svg/WorkflowRenderSvgRenderer.cs @@ -2089,6 +2089,13 @@ public sealed class WorkflowRenderSvgRenderer var lenOut = Math.Sqrt((dxOut * dxOut) + (dyOut * dyOut)); var r = Math.Min(radius, Math.Min(lenIn / 3d, lenOut / 3d)); + // Sharp corner for tight doglegs: when both segments are short, + // a curved corner creates a visible S-curve. Sharp is cleaner. + if (lenIn < 30d && lenOut < 30d) + { + r = 0d; + } + if (r < 0.5d || lenIn < 1d || lenOut < 1d) { builder.Append($" L {Format(curr.X + offsetX)},{Format(curr.Y + offsetY)}");