Set tick label offsets better

This commit is contained in:
Nathan McRae
2025-08-20 20:29:23 -07:00
parent 2fabfa3415
commit 6d8d32c8eb

View File

@@ -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 Maybe.Just dim -> Either.Right $ svgText definition.axis3Label (transform scale xOffset yOffset axis3TitlePos) (pi / 3.0) definition.axisTitleTextStyle dim
] ]
axisTickStarts = map (\line -> line.start) tickLength = 5.0
-- svgText :: String -> Point -> Number -> TextStyle -> Dimension -> XMLFragment -- TODO: Base this off of label dimensions / orientation
-- svgText text { x: x, y: y } angle style dimension = 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 -> axisTickLabels = \rotation startI -> Array.mapWithIndex (\i point ->
let text = ("E" <> (toString (Int.toNumber (i + startI)))) 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 :: Array (Either.Either String XMLFragment)
axis1TickLabels = axisTickLabels 0.0 definition.axis1Start $ axisTickStarts axis1TickLines axis1TickLabels = axisTickLabels 0.0 definition.axis1Start $ axis1TickStarts axis1TickLines
axis2TickLabels = axisTickLabels 0.0 definition.axis2Start $ axisTickStarts axis2TickLines axis2TickLabels = axisTickLabels 0.0 definition.axis2Start $ axis2TickStarts axis2TickLines
axis3TickLabels = axisTickLabels 0.0 definition.axis3Start $ axisTickStarts axis3TickLines axis3TickLabels = axisTickLabels 0.0 definition.axis3Start $ axis3TickStarts axis3TickLines
labelFragmentsErr = Array.concat [axisTitlesSvg, axis1TickLabels, axis2TickLabels, axis3TickLabels] labelFragmentsErr = Array.concat [axisTitlesSvg, axis1TickLabels, axis2TickLabels, axis3TickLabels]