Ti vengono dati i valori RGB di un colore. Il tuo compito è semplice: calcolare la tonalità, nella definizione più semplice.
Dire che i canali con il valore più alto, medio e più basso sono X, Y, Z (che sono rossi, verdi o blu) e i loro valori sono x, y, z. La tonalità di questo colore è (h (X) -h (Y)) * (1 + (xy) / (xz)) / 2 + h (Y), dove:
h(red) = 0 (or 360 if one of X or Y is blue)
h(green) = 120
h(blue) = 240
L'input è composto da 3 numeri interi da 0 a 255 che non sono tutti uguali, in qualsiasi ordine coerente. L'output può essere float o numeri interi arrotondati verso l'alto o verso il basso, il che non deve essere coerente. Se la parte intera dell'output è 0 o 360, è possibile stampare uno di essi.
Non è possibile chiamare i builtin per le conversioni dello spazio colore, comprese le conversioni implicite come durante la manipolazione di un'immagine.
Questo è code-golf. Il codice più corto vince.
Esempi
Input: 0 182 255
Output: 197 (or 198)
Input: 127 247 103
Output: 110
Input: 0 0 1
Output: 240
Input: 255 165 245
Output: 307 (or 306)
modificare
Non devi seguire la formula esatta, ma devi solo dare lo stesso risultato della formula sopra. Mi piacerebbe anche vedere alcune risposte giocando a golf la formula stessa.