From 100927e7dc89fb834011ad870c0c60e10b340e45 Mon Sep 17 00:00:00 2001 From: Paracelsus-Rose Date: Thu, 19 Jan 2023 14:19:29 -0500 Subject: [PATCH] Seems right. Thanks Gavin. --- d2renderers/d2svg/d2svg.go | 33 ++++++++++--------- .../circle_arrowhead/dagre/sketch.exp.svg | 2 +- .../circle_arrowhead/elk/sketch.exp.svg | 2 +- 3 files changed, 19 insertions(+), 18 deletions(-) diff --git a/d2renderers/d2svg/d2svg.go b/d2renderers/d2svg/d2svg.go index 0b86b6a15..d9ba8449b 100644 --- a/d2renderers/d2svg/d2svg.go +++ b/d2renderers/d2svg/d2svg.go @@ -229,37 +229,38 @@ func arrowheadMarker(isTarget bool, id string, connection d2target.Connection) s } case d2target.FilledCircleArrowhead: attrs := fmt.Sprintf(`class="connection" fill="%s" stroke-width="%d"`, connection.Stroke, connection.StrokeWidth) + radius := width / 2 if isTarget { - - path = fmt.Sprintf(``, + path = fmt.Sprintf(``, attrs, - (height/1.6)/strokeWidth*2, - (height/1.6)/strokeWidth*2, - (width/3.2)/strokeWidth*2, + radius+strokeWidth/2, + radius, + radius-strokeWidth/2, ) } else { - path = fmt.Sprintf(``, + path = fmt.Sprintf(``, attrs, - (height/1.6)/strokeWidth*2, - (height/1.6)/strokeWidth*2, - (width/3.2)/strokeWidth*2, + radius-strokeWidth/2, + radius, + radius-strokeWidth/2, ) } case d2target.CircleArrowhead: attrs := fmt.Sprintf(`class="connection" fill="white" stroke="%s" stroke-width="%d"`, connection.Stroke, connection.StrokeWidth) + radius := width / 2 if isTarget { path = fmt.Sprintf(``, attrs, - (height/1.6)/strokeWidth*2, - (height/1.6)/strokeWidth*2, - (width/3.2)/strokeWidth*2, + radius+strokeWidth/2, + radius, + radius-strokeWidth, ) } else { path = fmt.Sprintf(``, attrs, - (height/1.6)/strokeWidth*2, - (height/1.6)/strokeWidth*2, - (width/3.2)/strokeWidth*2, + radius-strokeWidth/2, + radius, + radius-strokeWidth, ) } @@ -309,7 +310,7 @@ func arrowheadMarker(isTarget bool, id string, connection d2target.Connection) s var refX float64 refY := height / 2 switch arrowhead { - case d2target.DiamondArrowhead, d2target.CircleArrowhead: + case d2target.DiamondArrowhead: if isTarget { refX = width - 0.6*strokeWidth } else { diff --git a/e2etests/testdata/stable/circle_arrowhead/dagre/sketch.exp.svg b/e2etests/testdata/stable/circle_arrowhead/dagre/sketch.exp.svg index 33d49792e..60d459d6a 100644 --- a/e2etests/testdata/stable/circle_arrowhead/dagre/sketch.exp.svg +++ b/e2etests/testdata/stable/circle_arrowhead/dagre/sketch.exp.svg @@ -39,7 +39,7 @@ width="491" height="577" viewBox="-102 -102 491 577">