fix: a readout mark sits on the sample it quotes, not on the pointer's column
The value was already the nearest stored sample's, but every mark drawn for it was placed at the *marker's* x with that sample's y -- so the dot the eye follows and the number in the pane were a different datum whenever the marker fell between two samples. Half a sample period is nothing across a whole window and the width of the panel once a few samples span the axes, which is the only zoom at which anyone is asking which point a number came from. `place_crossings()` now goes through the plotter's new `Plot::crosshair_point()`, which returns the quoted sample's x alongside its y -- one lookup for the mark and the number, so they cannot name different samples. The dot consequently sits a little off its own vertical cursor line: the line is where the marker is, the dot is the datum being quoted, and between two samples those are two places. Pin moves to the upstream commit that does the same for the library's own hover crosshair and draws its mark larger than a trace's sample dots, and that keeps the old blend reachable as `CrosshairValue::Interpolated` -- which udpscope never states. Verified: plotter suite 370 cases 0 failed; `[cursors-probe]` lines=3 marks=6 with `first mark at x=3.292400 y=-0.525175` against the pane's `-525.17 mV`; `[help]` pages=14 parsed=14 closed ok.
This commit is contained in:
1 parent
d03c9fb443
commit
1f6738031a
5 files changed
+61
-16
No files matched your search
Vendored
+1
-1
Submodule deps/plotter updated: c028f48fa0...c960decaea.
Reference in new issue
Block a user