Fix offset tick labels: wrap indices with modulo, show LED 0 position
Some checks failed
Validate / validate (push) Failing after 8s
Some checks failed
Validate / validate (push) Failing after 8s
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -1197,6 +1197,8 @@ function renderCalibrationCanvas() {
|
|||||||
const segments = buildSegments(calibration);
|
const segments = buildSegments(calibration);
|
||||||
if (segments.length === 0) return;
|
if (segments.length === 0) return;
|
||||||
|
|
||||||
|
const totalLeds = calibration.leds_top + calibration.leds_right + calibration.leds_bottom + calibration.leds_left;
|
||||||
|
|
||||||
// Edge bar geometry (matches CSS: corner zones 56px × 36px fixed)
|
// Edge bar geometry (matches CSS: corner zones 56px × 36px fixed)
|
||||||
const cw = 56;
|
const cw = 56;
|
||||||
const ch = 36;
|
const ch = 36;
|
||||||
@@ -1233,11 +1235,17 @@ function renderCalibrationCanvas() {
|
|||||||
const count = seg.led_count;
|
const count = seg.led_count;
|
||||||
if (count === 0) return;
|
if (count === 0) return;
|
||||||
|
|
||||||
// Show only first and last LED index per edge
|
// Show only first and last LED index per edge, plus LED 0 if offset > 0
|
||||||
const labelsToShow = new Set();
|
const labelsToShow = new Set();
|
||||||
labelsToShow.add(0);
|
labelsToShow.add(0);
|
||||||
if (count > 1) labelsToShow.add(count - 1);
|
if (count > 1) labelsToShow.add(count - 1);
|
||||||
|
|
||||||
|
// Add LED 0 tick on the edge where it wraps
|
||||||
|
if (offset > 0 && totalLeds > 0) {
|
||||||
|
const zeroPos = (totalLeds - seg.led_start % totalLeds) % totalLeds;
|
||||||
|
if (zeroPos < count) labelsToShow.add(zeroPos);
|
||||||
|
}
|
||||||
|
|
||||||
// Tick styling
|
// Tick styling
|
||||||
const tickLen = 5;
|
const tickLen = 5;
|
||||||
ctx.strokeStyle = 'rgba(255, 255, 255, 0.4)';
|
ctx.strokeStyle = 'rgba(255, 255, 255, 0.4)';
|
||||||
@@ -1248,7 +1256,7 @@ function renderCalibrationCanvas() {
|
|||||||
labelsToShow.forEach(i => {
|
labelsToShow.forEach(i => {
|
||||||
const fraction = count > 1 ? i / (count - 1) : 0.5;
|
const fraction = count > 1 ? i / (count - 1) : 0.5;
|
||||||
const displayFraction = seg.reverse ? (1 - fraction) : fraction;
|
const displayFraction = seg.reverse ? (1 - fraction) : fraction;
|
||||||
const ledIndex = seg.led_start + i;
|
const ledIndex = totalLeds > 0 ? (seg.led_start + i) % totalLeds : seg.led_start + i;
|
||||||
|
|
||||||
if (geo.horizontal) {
|
if (geo.horizontal) {
|
||||||
const tx = geo.x1 + displayFraction * (geo.x2 - geo.x1);
|
const tx = geo.x1 + displayFraction * (geo.x2 - geo.x1);
|
||||||
|
|||||||
Reference in New Issue
Block a user