From c549b1724a570a0543b9f72fa6a0ad59d8f6448e Mon Sep 17 00:00:00 2001 From: "Adrian A. Baumann" Date: Fri, 31 Jul 2026 14:59:51 +0200 Subject: [PATCH] Tick size adjustable --- web/app.py | 24 ++++++++++++++++++++++-- web/templates/index.html | 30 ++++++++++++++++++++++++++++++ 2 files changed, 52 insertions(+), 2 deletions(-) diff --git a/web/app.py b/web/app.py index ae91ba8..cff846b 100644 --- a/web/app.py +++ b/web/app.py @@ -447,6 +447,12 @@ def generate_svg( custom_labels=None, label_size=5.1126, font_key=None, + major_len=MAJOR_LEN, + major_w=MAJOR_W, + medium_len=MEDIUM_LEN, + medium_w=MEDIUM_W, + small_len=SMALL_LEN, + small_w=SMALL_W, ): fd = ( _FONTS.get(font_key) or _FONTS.get(_DEFAULT_FONT) or next(iter(_FONTS.values())) @@ -589,7 +595,7 @@ def generate_svg( ) for angle in big_angles: - parts.append(_tick_line(angle, MAJOR_LEN, MAJOR_W)) + parts.append(_tick_line(angle, major_len, major_w)) if small_ticks > 0: sub = small_ticks + 1 @@ -604,7 +610,7 @@ def generate_svg( v = big_vals[i] + j * (big_vals[i + 1] - big_vals[i]) / sub angle = value_to_angle(v) length, width = ( - (MEDIUM_LEN, MEDIUM_W) if j == medium_j else (SMALL_LEN, SMALL_W) + (medium_len, medium_w) if j == medium_j else (small_len, small_w) ) parts.append(_tick_line(angle, length, width)) @@ -678,6 +684,14 @@ def generate(): small_ticks = max(0, min(20, int(request.form.get("small_ticks", 4)))) label_count = max(2, int(request.form.get("label_count", 6))) label_size = max(0.5, min(25.0, float(request.form.get("label_size", 5.1126)))) + major_len = max(0.1, min(25.0, float(request.form.get("major_len", MAJOR_LEN)))) + major_w = max(0.01, min(10.0, float(request.form.get("major_w", MAJOR_W)))) + medium_len = max( + 0.1, min(25.0, float(request.form.get("medium_len", MEDIUM_LEN))) + ) + medium_w = max(0.01, min(10.0, float(request.form.get("medium_w", MEDIUM_W)))) + small_len = max(0.1, min(25.0, float(request.form.get("small_len", SMALL_LEN)))) + small_w = max(0.01, min(10.0, float(request.form.get("small_w", SMALL_W)))) if request.form.get("max_is_inf") == "1": max_val = math.inf @@ -695,6 +709,12 @@ def generate(): custom_labels, label_size, font_key, + major_len, + major_w, + medium_len, + medium_w, + small_len, + small_w, ) except ValueError as err: return Response(str(err), status=400, mimetype="text/plain") diff --git a/web/templates/index.html b/web/templates/index.html index e52fef4..bd0ab26 100644 --- a/web/templates/index.html +++ b/web/templates/index.html @@ -378,6 +378,36 @@ Right +
+
+ + +
+
+ + +
+
+
+
+ + +
+
+ + +
+
+
+
+ + +
+
+ + +
+