RGB -> HCL bicone coords

Supposons une palette restreinte de couleurs, comme les 15 couleurs du TI-Basic de la TI-83 Premium CE.
Et supposons une couleur donnée par ses coordonnées RGB/RVB, que l'on souhaiterait illustrer à l'écran.
Voir les coordonnées RGB/RVB des 15 couleurs TI-83 Premium CE
Les coordonnées RGB/RVB ne permettent pas de faire le choix de couleur le plus approchant dans le contexte de la vision humaine.
Une solution est de convertir la couleur en composantes HCL/TCL, bien plus proches de la perception humaine, puis de récupérer les coordonnées normalisées sur le bicône associé :

L'algorithme n'est pas compliqué, mais nécessite quand même de gérer beaucoup de cas différents.
En voici un voisin pour la seule conversion RGB/RVB → HSL/TSL :
https://www.rapidtables.com/convert/col ... o-hsl.html
Et malgré tout, grâce à nombre d'astuces spécifiques au superbe langage de la TI-83 Premium CE, voici la conversion RGB/RVB → HCL/TCL → XYZ en seulement 11 lignes :
Et supposons une couleur donnée par ses coordonnées RGB/RVB, que l'on souhaiterait illustrer à l'écran.
Voir les coordonnées RGB/RVB des 15 couleurs TI-83 Premium CE
Les coordonnées RGB/RVB ne permettent pas de faire le choix de couleur le plus approchant dans le contexte de la vision humaine.
Une solution est de convertir la couleur en composantes HCL/TCL, bien plus proches de la perception humaine, puis de récupérer les coordonnées normalisées sur le bicône associé :

L'algorithme n'est pas compliqué, mais nécessite quand même de gérer beaucoup de cas différents.
En voici un voisin pour la seule conversion RGB/RVB → HSL/TSL :
https://www.rapidtables.com/convert/col ... o-hsl.html
Et malgré tout, grâce à nombre d'astuces spécifiques au superbe langage de la TI-83 Premium CE, voici la conversion RGB/RVB → HCL/TCL → XYZ en seulement 11 lignes :

- Code: Select all
Rep/255→⌊RGB
{0,0,0,max(⌊RGB),min(⌊RGB→⌊HCL
⌊HCL(4)-⌊HCL(5→⌊HCL(2
⌊HCL(4)-1+⌊HCL(5→⌊HCL(3
If ⌊HCL(2
Then
som(suite(I(⌊RGB(I)=⌊HCL(4)),I,1,3
2(Rep-1)+(⌊RGB(reste(Rep,3)+1)-⌊RGB(reste(Rep+1,3)+1))/⌊HCL(2
60°(Rep+6(Rep<0→⌊HCL(1
End
{⌊HCL(2)cos(⌊HCL(1)),⌊HCL(2)sin(⌊HCL(1)),⌊HCL(3