This page complements BC/Velocity-Band Transformation with a visual and a copy-pasteable trajectory. All data are from the test suite so the numbers are checkable.
Resulting drag curve
G1 reference vs BC-band transformed drag curve
*Figure — same as in BC/Velocity-Band Transformation — G1 reference (blue) and the curve transformed with bands 0.20@2000, 0.30@2500, 0.40@3000 fps (red) at ISA c=1116 fps (band Machs ≈1.79, 2.24, 2.69, marked). Dashed gray is G1/0.30. Static docs/figures/bc_transformation.svg from source/tables.hpp via the same PCHIP as the library.*
How to read it:
Low BC (0.20) → high drag (/0.20 = 5×); high BC (0.40) → lower drag (/0.40 = 2.5×).
Between marks the curve is smooth PCHIP, not kinked.
Outside marks scaling is flat — parallels the reference shifted by the edge BC. See BC/Velocity-Band Transformation for the math and flat-padding rationale.
For comparison, a constant BC=0.30 is Builder().BallisticCoefficientPsi(0.30) and yields a proportionally scaled curve — the bands case uses more drag low and less drag high, so the trajectory drops less at short range and more at long range than the BC=0.30 baseline.
The three regimes are locked by test/source/lob_builder_test.cpp (BCVelocityBandsNonConstantClampingAndInterpolation): below the slowest band clamped to first BC, between bands strictly between the bracketing scalings and matching the retardation product to 2e-3, above the fastest band clamped to last BC.
Limitations in this example
Same limits as the transformation itself — see BC/Velocity-Band Transformation for the full list (N bounds, monotonicity, Mach <5, last-setter wins, flat extrapolation). The point of the figure is that you can see the flat extrapolation outside the marks.