Tape line

Drag each tick to where your tape started and ended.

The black line is fixed: tilting, dragging and zooming the slab never move it. It stays in the middle of the rectangle.

Tilt the slab

setTilt(Number(e.currentTarget.value))} /> {tiltShown}°

±90° · ← → tilt 1° · Shift+← → 0.1° · two-finger twist (Rotate gesture mode)

Zoom the slab

setTape({ ...tape, zoom: Number(e.currentTarget.value) / 100 })} /> {Math.round(tape.zoom * 100)}%

Crop fill % global setting

onFill(Number(e.currentTarget.value))} /> {Math.round(cropFill * 100)}%

settings.crop_fill (default 90). At {Math.round(cropFill * 100)}% the overlay ends sit {(cropMarginFraction(cropFill) * 100).toFixed(1)}% in from top and bottom. The 3:4 aspect never changes. Stored PNGs are not re-cropped.

Tape span between ticks{tape.spanPx.toFixed(0)} px
Scale (once L entered)span / L → px/in