From 6d8d32c8eb583ab37eef94dde10568542810db08 Mon Sep 17 00:00:00 2001 From: Nathan McRae Date: Wed, 20 Aug 2025 20:29:23 -0700 Subject: [PATCH] Set tick label offsets better --- src/TernaryGraph.purs | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/TernaryGraph.purs b/src/TernaryGraph.purs index 6f8d65b..d87604a 100644 --- a/src/TernaryGraph.purs +++ b/src/TernaryGraph.purs @@ -194,9 +194,15 @@ ternaryGraph scale xOffset yOffset definition textDimensions = result Maybe.Just dim -> Either.Right $ svgText definition.axis3Label (transform scale xOffset yOffset axis3TitlePos) (pi / 3.0) definition.axisTitleTextStyle dim ] - axisTickStarts = map (\line -> line.start) - -- svgText :: String -> Point -> Number -> TextStyle -> Dimension -> XMLFragment - -- svgText text { x: x, y: y } angle style dimension = + tickLength = 5.0 + -- TODO: Base this off of label dimensions / orientation + labelSpacing = 5.0 + axis1Offset = {x: 0.0, y: tickLength + labelSpacing} + axis2Offset = rotate (2.0 * pi / 3.0) axis1Offset + axis3Offset = rotate (-2.0 * pi / 3.0) axis1Offset + axis1TickStarts = map (\line -> line.start + axis1Offset) + axis2TickStarts = map (\line -> line.start + axis2Offset) + axis3TickStarts = map (\line -> line.start + axis3Offset) axisTickLabels = \rotation startI -> Array.mapWithIndex (\i point -> let text = ("E" <> (toString (Int.toNumber (i + startI)))) @@ -208,9 +214,9 @@ ternaryGraph scale xOffset yOffset definition textDimensions = result ) axis1TickLabels :: Array (Either.Either String XMLFragment) - axis1TickLabels = axisTickLabels 0.0 definition.axis1Start $ axisTickStarts axis1TickLines - axis2TickLabels = axisTickLabels 0.0 definition.axis2Start $ axisTickStarts axis2TickLines - axis3TickLabels = axisTickLabels 0.0 definition.axis3Start $ axisTickStarts axis3TickLines + axis1TickLabels = axisTickLabels 0.0 definition.axis1Start $ axis1TickStarts axis1TickLines + axis2TickLabels = axisTickLabels 0.0 definition.axis2Start $ axis2TickStarts axis2TickLines + axis3TickLabels = axisTickLabels 0.0 definition.axis3Start $ axis3TickStarts axis3TickLines labelFragmentsErr = Array.concat [axisTitlesSvg, axis1TickLabels, axis2TickLabels, axis3TickLabels]