A browser implementation of the classic Farnsworth Panel D-15: arrange 15 equal-lightness caps into a smooth hue sequence, then get a CIE u′v′ polar hue-trace plot, Total Error Score, confusion index and protan/deutan/tritan classification. Runs entirely locally.
① 色帽生成:取 D-15 的 15 個色度點 (x, y),在固定亮度 Y 下換算 XYZ = (Y/y·x, Y, Y/y·(1−x−y)),再經 sRGB 逆矩陣得線性 RGB;越界的點沿「向同亮度中性灰收斂」的方向做二分法壓縮到色域內,因此 15 個色帽明度一致、只有色相與飽和度差異——這正是排列測試能遮蔽明暗線索的關鍵(可勾選「灰度預覽」自行驗證)。
② 色差度量:把每個色帽轉到 CIE 1976 u′v′ 均勻色度圖,u′ = 4x/(−2x+12y+3)、v′ = 9y/(−2x+12y+3)。相鄰兩帽的色度距離 √(Δu′²+Δv′²)×100 即一步色差;把 14 步累加得總誤差分 TES。理想順序的 TES 記為基準,混淆指數 C = TES(你的排列) / TES(理想排列),完美排列 C = 1.00。
③ 軸向分析:只取「相鄰兩帽編號不連續」的錯位跳躍作為誤差向量,計算二階矩 Sxx、Syy、Sxy,主軸方向 θ = ½·arctan2(2Sxy, Sxx−Syy),主/次特徵值之比開方得選擇性指數 S。S 越大說明錯誤越集中在一條直線上(二色視特徵),S≈1 說明錯誤是隨機的。
④ 分型:三條混淆線由二色視共軛點(copunctal point)確定——紅色盲 (0.747, 0.253)、綠色盲 (1.400, −0.400)、藍色盲 (0.171, 0.000)。把它們和 D65 白點連線投到 u′v′ 得到三個參考軸向角,θ 與哪一條最接近就歸為哪一型,嚴重度由 C 的大小分級。
把中間 13 個色帽按顏色漸變最平滑的順序排列:讓每一個色帽都和左右鄰居顏色最接近。兩端帶紫色圈的是固定基準帽,不能移動。桌面端可直接拖拽色帽;移動端點一下選中、再點另一個即可換位,也可以用色帽下方的 ◀ ▶ 按鈕微調,鍵盤使用者可用 Tab 聚焦後按 ← → 移動。