Skip to content

Migrate GraphViewer to modern expressions and portable plot geometry - #1

Merged
Olof-Lagerkvist merged 3 commits into
masterfrom
experimental/math-expression-migration
Sep 8, 2026
Merged

Migrate GraphViewer to modern expressions and portable plot geometry#1
Olof-Lagerkvist merged 3 commits into
masterfrom
experimental/math-expression-migration

Conversation

@Olof-Lagerkvist

Copy link
Copy Markdown
Member

GraphViewer previously retained mutable Surface/GDI+ paths and coupled formula evaluation to drawing. This migration uses bound unary expressions, explicit plot definitions and snapshots, and portable geometry from MathExpression 1.1.0 and FunctionPlotting 1.2.0.

  • Preserve overlays explicitly across repaint, resize and visibility changes; invalid input retains the last successful graph.
  • Use numerical sample differentiation and finite-run trapezoidal integration, with documented gap and initial-value semantics.
  • Render screen, print and five image formats through the application's small System.Drawing adapter.
  • Remove this application's LTRLib.Windows dependency while retaining all five target frameworks.

Validation: the application owner built and tested the application. The final local package pass compiled all three modern Windows targets. The Windows workflow builds net35/net40 with the full resource toolchain and exercises native drawing, all five encoders, margins, overlays and form resize against the pinned producer packages.

Producer dependency: Library PR #3. Build Library into the shared local NuGet feed first. See docs/graphviewer-migration.md for numerical semantics and manual printer/DPI review notes. FreeBSD work remains deferred.

@Olof-Lagerkvist
Olof-Lagerkvist merged commit f1cbec5 into master Sep 8, 2026
4 checks passed
@Olof-Lagerkvist
Olof-Lagerkvist deleted the experimental/math-expression-migration branch September 8, 2026 21:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant