Medicina Popolare Disclaimer MedPop Galenica domestica
Miscele numeriche di tinte e colori ColorCalc
HOME .php .html .pdf Cromatologia Colore Tinta Inchiostro

URL: www.pforster.ch/Colori/ColorCalc/Mischi/ColorCalc-Mischi.html

P. Forster
a cura di Daniela Rüegg

1.  Introduzione


Toro di Lascaux
17.000-15.000 a.C.

Colori e tinte (inchiostri) sono mescolabili. Secondo le tonalità dei colori usati e secondo la loro relativa quantità si generano nuove tonalità. Il fatto affascina l'essere umano da quando usa dei colori e le regole della mescolanza hanno occupato la mente di innumerevoli artigiani e scienziati.
Per millenni, l'attenzione si concentrò sulle miscele di tinte e inchiostri "pigmentosi", fino a quando Sir Isaac Newton 1642-1727 scoprì le leggi della mescolanza e la frazione della luce.


Esperimento prisma
di Sir Isaac Newton

Si notò che dalla mescolanza di luci (irradiante, additivo) risultavano altre tonalità rispetto alla mescolanza pigmentosa di tinte / inchiostri (riflessive, sottrative) dello stesso colore. L'esempio lampante fu il verde, risultante in seguito a miscela equa pigmentosa di giallo e blu, mentre la miscela equa luminosa fornisce un grigio.


Stampa a colori

Ai tempi dell'industrializzazione la domanda si accentuò; prima con le arti grafiche e la stampa a colori (pigmentosa) e poi con gli schermi televisivi a colori e dei computer (luminosa): per queste tecniche necessitano descrizioni numeriche riproducibili.


Monitore LCD

All'inizio del '900 la CIE standardizzò la misurazione e la riproduzione di colori, proponendo i sistemi CMYK (pigmentoso) per la tipografia e RGB (luminoso) per l'illuminazione, il tutto basato su un modello generale CIE*Lab. Gli artigiani proseguirono con l'usare il tradizionale modello RYB.

Per la descrizione numerica furono stilate tante notazioni, tutte con i loro pregi e difetti. Le più note sono CIE*Lab, Hex#, RGB, CMYK, HSV, HSB, HSL, ... . Complicano i calcoli, ma sono tutte trasformabili tra di loro. Sul web si usa quasi esclusivamente la notazione Hex#, anche se sono direttamente usabili anche le notazioni rgb(), cmyk() e hsl().
Per praticità personale ho aggiunto una mia notazione HySL che rispecchia le necessità di calcoli pigmentosi ed è facilmente trasformabile da e a HSL.

◦⦆─────⦅◦

1.1  Paragone tra miscele pigmentose e luminose


Esempio miscela
pigmentosa / luminosa

La "miscela" di colori sullo schermo non pone grandi problemi: basta calcolare la media dei valori esadecimali hex# o RGB.

La miscela di tinte pigmentose di solito fornisce tutt'altre tonalità, che sono difficilmente o per niente esattamente prevedibili.

Esempio: la miscela di tinte blu e giallo su carta fornisce un colore verde (miscela pigmentosa o sottrattiva).
La miscela degli stessi colori luminosi, p.es. sullo schermo, fornisce invece un grigio, perchè per la media di blu #0000ff e di giallo #ffff00 risulta un grigio medio #808080 (miscela luminosa o additiva).


◦⦆─────⦅◦

1.2  Calcolatrice di miscele cromatiche

Lavorando spesso sullo schermo, mi disturbava il fatto di non poter adoperare delle miscele e degli accordi pigmentosi per cui ero alla ricerca di un algoritmo di semplice applicazione per poter simulare all'incirca le tonalità pigmentose.

Di conseguenza mi sono messo a stilare una calcolatrice che svolge questo compito. Il risultato si trova di fianco.

Provate con diverse tinte dopo aver azionato "PopUp..."!
(doppio clic, copia, incolla)

Y #ffff00 | Yo #ffe200 | O #ffaa00 | Or #ff5900 |
R #ff0000 | Rv #de0052 | V #7109aa | Vb #2618b1 |
B #1240ab | Bg #086ca2 | G #00cc00 | Gy #bdf400 |

Istruzione d'uso: PopUp:

  • Cliccare sul tasto "PopUp...": appare una finestrina separata con la calcolatrice funzionante.
  • digitare o incollare il valore esadecimale hex# di un colore in una casella gialla e poi quello del secondo nell'altra.
  • Leggere il risultato ed ev. copiare (doppio clic).
  • Cliccare sul tasto ▼ per far apparire la miscela luminosa.
  • Cancellare i valori e colori cliccando sugli tasti "X".

◦⦆─────⦅◦

1.3  Realizzazione della calcolatrice

I passi per realizzare la calcolatrice sono stati i seguenti:

(Ø significa media e miscela, 1&2 colori da mescolare, RGB, #hex, HSL e HySL sono modelli cromatici e/o sistemi di notazione).

Confesso che sono incorso in diversi grattacapi e ho impiegato molto tempo (come programmatore dilettantistico) per sviluppare un motorino accettabile.

Il resto di questo scritto non è essenziale per capire e usare la calcolatrice. Spiega agli interessati le premesse e i dettagli per la sua realizzazione.

2.  Spettro luminoso e pigmentoso


Spettro luminoso RGB

Ruota RGB

Per poter calcolare delle miscele cromatiche servono dei modelli e dimensionamenti:

Per le miscele luminose è praticissimo il modello RGB nella notazione esadecimale #hex. Si basa sullo spettro RGB riportato ovunque nel web.


Scala RYB
pigmentosa

Ruota RYB
pigmentosa

Per le miscele pigmentose serve invece di più un modello polare (circolatorio). La banda dei colori è semplicemente disposto su un cerchio.
Per i calcoli delle miscele pigmentose mi sono basato sul modello polare HSL e sulla scala di Petr Stanicek, usato p.es. da ColorSchemeDesigner. Ho battezzato il tutto HySL (y per yellow = giallo).
Per le conversioni reciproche tra HSL e HySL basta la trasformazione tra H e Hy (scale della tonalità in gradi °), saturazione S e luminosità L rimangono intanto identiche.

◦⦆─────⦅◦

2.1  Conversioni tra scale di tonalità


Per raggiungere una funzione che connetta H° e Hy° ho paragonato i valori di HSL con i valori empirici di Stanicek.

Risulta una curva sulla quale si può determinare tutti valori a vicenda: p.es. H=222° → Hy=240° oppure Hy=120° → H=60°. Ho poi approssimato questa curva con una funzione regressiva polinomiale, predisposta all'uso in calcoli.
La convertitrice facilita il lavoro: digitando un valore tra 0...360° in una delle caselle appare il valore congruente nell'altro sistema di misurazione.

3.  Calcolo di miscele pigmentose

Per il calcolo di miscele cromatiche pigmentose mi servo del modello cilindrico HSL.



Dimensioni HySL

Scale tonali

Visto che il modello HSL si basa sulla scala tonale RGB, l'ho modificato in HySL cioè in scala di tonalità pigmentosa RYB secondo Stanicek. Le scale per la saturazione S e la luminosità L rimangono uguali.

◦⦆─────⦅◦

3.1  Descrizione del calcolo


Intuitivamente si deduce che i valori Hy, S e L di un miscela sono le medie (Ø) dei valori delle due tinte. Questo è anche plausibile per i valori delle tonalità Hy e delle luminosità L ma non per la saturazione S, come vedremo poi.

Esempio: la miscela di giallo Hy=120° e di blu Hy=240° fornisce una tinta di tonalità media (120+240   /2) di øHy=180° che corrisponde al verde.
La luminosità del giallo sia L=50% e del blu di L=30%, la media luminosa øL risulta del 40%.
Se la saturazione del giallo è S=100% e del blu mettiamo S=70%, la media di saturazione risulta del øS=85%.

Per il calcolo della saturazione non basta l'intuito: l'esperienza ci insegna che più si distanziano due tinte da mescolare, più diventano grigiastre; a una distanza di 180° non hanno più tonalità, perchè la saturazione è diventata zero.
Serve allora conoscere la distanza tra le due tonalità che è semplicemente la loro differenza. Una funzione trigonometrica (coseno → cos) della metà dell'angolo di differenza) fornisce il coefficente di diminuzione della saturazione (1 a 0° e 0 a 90° di metà differenza angolare).
L'illustrazione cui sopra fa vedere i dettagli geometrici e numerici di una miscela.

Noto il calcolo, si può stilare una calcolatrice. Una relativa calcolatrice di dimostrazione si trova di fianco. Visto che non si usa fuori contesto, non l'ho elaborata più di tanto.

Esempio: la miscela di giallo Hy=120° e di blu Hy=240° fornisce una differenza angolare di 120° e la metà di ß=60°. Il coseno cos60°=0.5, corrispondente al moltiplicatore per la saturazione media øS=85% dell'esempio di prima. Risulta quindi il valore reale per la saturazione mS=øS*cosß: mS =85*0.5 =43%.

Riassunto: Il risultato di un miscela:

4.  Notazioni luminose ⇄ pigmentose

Oltre alla trasformazione di scale (luminose⇄pigmentose) e al calcolo stesso della miscela pigmentosa ci sono da sistemare le diverse notazioni dei colori sul web e le loro conversioni a vicenda.
Per il mio obiettivo mi sono limitato alle tre notazioni: esadecimale #, RGB e HSL / (HySL) per praticità e frequenza d'uso.


Algoritmo miscela pigmentosa

Per le notazioni luminose esistono tanti programmini di conversione pronti all'uso. Ho concatenato per il mio scopo i più idonei combinandoli con HSL⇄HySL.
Risulta un algoritmo per la miscela luminosa come spiegato nell'immagine di fianco.

Siccome non li uso solo per delle miscele ma anche per altre applicazioni, ho stilato due algoritmi:

I programmini sono scritti in JavaScript e DOM (Document Object Model), divulgatissimi e integrabili senza problemi in html, linguaggio abituale del web.
Per conoscere subito le angolazioni delle tinte pigmentose armoniche ho aggiunto il calcolo per le angolazioni dal colore originale Hy di 90, 120, 180, 240 e 270°.
Cliccando sul tasto "PopUp..." appare una finestrina staccata con la convertitrice funzionante. Provare!

Istruzione d'uso del PopUp: digitare in una casella bianca un valore sensato. Azionare il tasto    (tabulatore) sulla tastiera: appaiono gli altri valori e il colore corrispondente. Poi modificare a piacere qualsiasi valore.

5.  Annessi

5.1  Modelli RYB e RGB


Superfice modello cilindrico RYB / HySL


Superfice modello sferico RGB / HSL


5.2  Sitografia (PopUps, Javascripts)

JavaScripts (programmini essenziali integrati):

  • Conversione HSL-#Hex: function hsl2hex(h,s,l) → return hex ; function hex2hsl(hex) → return h, s, l;
  • Conversione H-Hy: function H2Hy(H) → return Hy ; function Hy2H(Hy) → return H;
  • miscela pigmentosa: function PigmentMean(Hy1,Sy1,Ly1,Hy2,Sy2,Ly2) → return hyo, dhy, cosdhy, syo, lyo;

5.3  Commenti

alla pagina: Miscele numeriche di tinte e colori. Se non c'è una relativa casella, cliccare sul titolo.



ultima modifica April 03, 2014, at 11:04 AM      Cc by P. Forster nc-3.0-it