From ace0947356ed2f588b609626290f80b26d430a97 Mon Sep 17 00:00:00 2001 From: peakflyer Date: Fri, 10 Jul 2026 14:33:23 -0400 Subject: [PATCH] Add CHANGELOG entry for negative-focal-length lens fix (#102) Co-Authored-By: Claude Opus 4.8 (1M context) --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9610a915..0944838c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,6 +19,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - **Zoom-invariant ruler rendering** (#80): Ruler endpoint bars, labels, selection bounds, and hit-test areas now maintain constant screen size regardless of zoom level, matching the existing cosmetic-pen line behavior +### Fixed + +- **Negative-focal-length lenses** (#102): Diverging lenses (f < 0) now correctly transmit and diverge rays instead of reflecting them back toward the source. The ideal thin-lens deflection now uses the ray-slope law `tan(θ_out) = tan(θ_in) − y/f`, which focuses an off-axis parallel bundle to a single point (`f·tan θ`) and matches the web engine's tracer + ## [0.3.4] - 2026-04-30 ### Added