Commit Graph

19 Commits

Author SHA1 Message Date
adebaumann 62d9f02a82 Add font selector; load all fonts from fonts/ directory; bump to 0.85
All .ttf files in fonts/ are loaded at startup. The web form now has a
font selector dropdown. Glyph-rendering helpers that previously used
module-level font globals now accept a _FontData parameter threaded
through from generate_svg().

Dockerfile updated to copy all of fonts/ into the image rather than a
single hardcoded .ttf path.
2026-07-14 23:51:55 +02:00
adebaumann 8d45a6d10f Fix reciprocal minor tick spacing; bump to 0.84
Minor ticks on 1/x scales were using linear value interpolation between
harmonically-spaced major ticks. Because 1/v is highly convex, equal value
steps near a large major-value (left side of the first interval) map to tiny
physical steps, piling all ticks against the left wall. At a 1:1000 ratio the
first four minor ticks land at 0%/0%/1%/2% of the interval.

Fix: interpolate in position space (uniform physical spacing) for all
reciprocal intervals, matching how major ticks are laid out (also equal
physical steps) and matching the already-correct ∞-first-interval handling.

Also documents 1/x scale and ∞ max in README.
2026-07-14 23:33:55 +02:00
adebaumann f19c462c1b Add infinity max option for reciprocal scale 2026-07-14 23:28:40 +02:00
adebaumann cf844d007b Add reciprocal (1/x) scale mapping 2026-07-14 23:25:01 +02:00
adebaumann 67b546cc97 Bump version to 0.81 2026-07-14 23:18:37 +02:00
adebaumann f9fca519b0 Bump version to 0.80 2026-07-14 19:29:47 +02:00
adebaumann 846fe2d235 Fix sqrt minor ticks: crowd toward low end via squared position 2026-07-14 19:27:40 +02:00
adebaumann 73917aca1e Add square-root scale mapping 2026-07-14 19:17:35 +02:00
adebaumann f676651edb Add unit-label markup: super/subscripts and stacked fractions
Lighter shorthand (^x, _x, {a/b}) rendered as glyph paths in the ГОСТ
font — no LaTeX engine, so typography and self-contained output are
preserved. Constructs nest (e.g. {m/s^2}, x^{1/2}). A marked-up unit is
sized to its true ink bounding box and centered in the unit box with
white space, fitting in both axes so tall fractions don't overflow.

Also fit plain units by measured glyph width rather than a per-character
estimate. Bump to 0.77.
2026-07-14 16:40:50 +02:00
adebaumann 54a7f072c4 Add configurable label font size; bump to 0.76
- New "Label size (mm)" field controlling the numeric-label font size,
  defaulting to a clean 9 mm (was the inherited Inkscape value 8.89194)
- Pin k8s deployment to image tag 0.76
2026-07-13 00:59:14 +02:00
adebaumann 5ae79499cb Add logarithmic scale, custom labels, and fixed-point number formatting
- New Linear/Log mapping toggle; log mode uses geometric major-tick
  values with log-positioned minor ticks (validates min/max > 0)
- Optional comma-separated custom labels that override the calculated
  numbers and set the label count
- Format numbers in fixed-point at 4 significant figures (no more
  scientific notation like "1e+04"), snapping log-scale FP drift to ints
- Bump version to 0.75
2026-07-13 00:40:36 +02:00
adebaumann 1d5592e49e Bump version to 0.72 2026-07-12 15:32:09 +02:00
adebaumann c42a46f536 Bump version to 0.71 2026-07-12 15:07:59 +02:00
adebaumann 624aa8828e Add Paths/Text output mode toggle with descriptions 2026-07-12 14:44:17 +02:00
adebaumann 6e9cd9109c Convert SVG text to paths via fontTools; drop embedded font 2026-07-12 14:41:11 +02:00
adebaumann 6b1523539f Set SVG background to white; bump image to 0.5 2026-07-12 01:35:29 +02:00
adebaumann 71f4e65538 Redesign UI with Baumann Works branding and logo 2026-07-12 01:28:41 +02:00
adebaumann 4a574bffb2 Scale unit label font size to fit left panel for multi-character strings 2026-07-12 00:48:18 +02:00
adebaumann 9e7223a1f5 Add web SVG generator, container, and Kubernetes manifests
- Flask app (web/) generates M1730 scale SVGs from a form; embeds
  GOST typ A font as base64 so output is self-contained
- Dockerfile builds the app into git.baumann.gr/adebaumann/m1730-generator
- k8s/ deploys as a ClusterIP service for NPM to proxy at
  works.adebaumann.com/M1730-generator/

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-12 00:29:55 +02:00