0..1 を経由する — lerp と map と clamp
値を別の値へ写すとき、いったん 0..1 に正規化してから写す。lerp(a, b, t) は t が 0 のとき a、1 のとき b、その間を直線で結ぶ。map はある範囲の値を別の範囲へ移す。tint も同じ仲間で、輝度を 0..255 に clamp して round している。
線形補間が lerp(a, b, t) = a + (b - a)·t。t を範囲 [lo, hi] の正規化位置として持てば、t = (v - lo) / (hi - lo) で値を 0..1 に落とし、lerp(lo2, hi2, t) で別の範囲へ戻す——この往復が map。clamp(v, lo, hi) は v を区間に閉じ込める関数で、t が 0..1 をはみ出したとき写った値が範囲外へ飛ぶのを止める。正規化を挟むと、写し先が位置でも明度でも同じ t を流せる。
点を時間 t で左から右へ動かし、その t を色にも map する。位置と明度が連動して、右へ行くほど暗くなる。tc を作る行を clamp から素の t に差し替えると、t が 1 を超えても止まらず、map した値が範囲を飛び出す。
t を 0..1 に正規化しておくと、位置 lerp(40, w-40, t) にも明度 lerp(238, 20, t) にも同じ t を流せる。範囲が違っても lerp が橋渡しする。clamp を外した tc = t だと、t が 1 を越えた時点で x が w - 40 を飛び越え、luma が 20 より下へ抜けて tint の端に張り付く。正規化を挟むと、この飛び出しが clamp 一か所で止まる。