From d9aa659010f8ffd443133657cca6c541097cc1aa Mon Sep 17 00:00:00 2001 From: metamuffin Date: Mon, 6 Oct 2025 00:12:59 +0200 Subject: fix arrow tip; scrollable pages --- server/tools/src/book_html.css | 1 + server/tools/src/diagram_svg.rs | 18 +++++++++++------- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/server/tools/src/book_html.css b/server/tools/src/book_html.css index fb60eb60..d64e9ef1 100644 --- a/server/tools/src/book_html.css +++ b/server/tools/src/book_html.css @@ -37,4 +37,5 @@ body { aspect-ratio: 0.707; width: 30em; height: auto; + overflow-y: auto; } \ No newline at end of file diff --git a/server/tools/src/diagram_svg.rs b/server/tools/src/diagram_svg.rs index a5d09316..0fc75668 100644 --- a/server/tools/src/diagram_svg.rs +++ b/server/tools/src/diagram_svg.rs @@ -72,21 +72,25 @@ pub fn diagram_svg(data: &Gamedata, diagram: &Diagram) -> Result { let src_node = &diagram.nodes[edge.src]; let dst_node = &diagram.nodes[edge.dst]; let src = node_edge_connect_pos(src_node, dst_node); - let dst = node_edge_connect_pos(dst_node, src_node); + let mut dst = node_edge_connect_pos(dst_node, src_node); + + let dir = (src - dst).normalize_or_zero(); + let tip0 = dst; + let tip1 = dst + (dir + dir.perp() * 0.5) * 10.; + let tip2 = dst + (dir + dir.perp() * -0.5) * 10.; + dst += dir * 5.; // prevent miter line cap from peeking out + + // line path writeln!( out, r#""#, src.x, src.y, dst.x, dst.y, )?; - - // Array tip - let dir = (src - dst).normalize_or_zero(); - let c1 = dst + (dir + dir.perp() * 0.5) * 10.; - let c2 = dst + (dir + dir.perp() * -0.5) * 10.; + // tip path writeln!( out, r#""#, - dst.x, dst.y, c1.x, c1.y, c2.x, c2.y + tip0.x, tip0.y, tip1.x, tip1.y, tip2.x, tip2.y )?; } -- cgit v1.2.3-70-g09d2