Come calcolare Sfumatura di colore

November 8

Come calcolare Sfumatura di colore


modelli di colore sono metodi per mappare numericamente lo spettro dei colori. I modelli di solito costituiti da tre o quattro valori dei componenti, come i componenti di rosso, verde e blu del modello di colore RGB. Per motivi di creare un senso di profondità o di altri effetti grafici, è spesso desiderabile utilizzare i modelli per creare sfumature di colore, che sono lisce transizioni tra un colore e l'altro. Creazione gradienti è una questione di matematicamente interpolazione tra i componenti del modello di colore. I calcoli gradiente può essere così semplice o complessa come ti piace.

istruzione

1 Definire una coppia di coordinate corrispondenti all'inizio e alla fine della sfumatura. Per un gradiente lineare, quelle coordinate anche specificare la direzione del gradiente, così in effetti, servono come la testa e la coda di un vettore, che è una quantità direzionale. Per un gradiente radiale, la coda del vettore corrisponde al centro, e la grandezza del vettore è uguale al raggio. Ad esempio, se si desidera un gradiente diagonale per riempire un quadrato il cui alto a sinistra coordinata è (0, 0), e in basso a destra è (100, 100), può definire le stesse coordinate della testa e la coda del vettore. Ogni linea perpendicolare al vettore tra la coda e la testa cambia gradualmente dal colore a partire da (0, 0) al colore finale (100, 100).

2 Calcolare la grandezza del vettore gradiente con l'equazione M = sqrt ((x2 - x1) ² + (y2 - y1) ²), dove (x1, y1) e (x2, y2) sono le coordinate del coda e la testa rispettivamente . Ad esempio, M = sqrt ((100 - 0) + (100 - 0) ²) = 141.4.

3 Calcolare la distanza di coda del vettore gradiente per ogni punto nella zona. Per un vettore radiale, l'equazione è D = sqrt ((x - x1) ² + (y - y1) ²), dove (x, y) è coppia di coordinate del punto. Per gradienti lineari, la distanza non è alla coda stessa, ma alla linea che passa attraverso la coda perpendicolare al vettore. L'equazione è D = (x

(x2 - x1) - x1 x2 + x1² + y (y2 - y1) - y1 y2 + y1²) / M. Impostare qualsiasi distanza minore di 0 a 0, e impostare una distanza maggiore della portata alla grandezza. Ad esempio, la distanza del punto (20, 30) è D = (20 100 + 30 100) /141.1 = 35,4 . Tutti i punti della linea che passa perpendicolarmente attraverso quel punto hanno la stessa distanza.

4 Calcolare la distanza del punto di rapporto di grandezza con l'equazione R = D / M. Ad esempio, il rapporto per il punto (20, 30) è R = 35,4 / 141,4 = 0,25.

5 Trova ciascuna delle componenti di colore per il punto con la formula Cp = R (C2 - C1) + C1, dove C1 e C2 sono i componenti corrispondenti per il colore iniziale e finale del gradiente. Questa formula funziona per qualsiasi modello di colore, ma quando si lavora con componenti ciclici, come la tonalità del modello HSL (tonalità saturazione modello leggerezza), utilizzare i valori per C1 e C2 tale che C2 minus C1 è inferiore alla metà gamma del componente.

Ad esempio, se i colori HSL iniziali e finali del gradiente sono (10, 93, 33) e (355, 28, 60), il segno meno C1 differenza C2 per la tonalità è 355 - 10 = 345, che è più della metà della HSL del gamma di 360 gradi, così come lavorare con gli angoli di un cerchio, aggiungere 360 ​​gradi per trovare un angolo equivalente. Lasciate C1 = 360 + 10 = 370. Pertanto, il componente di tonalità è Cp = 0,25 (355-370) + 370 = 366,3. Questo è fuori del campo, in modo sottrarre 360 per un valore di 6,3. Gli altri componenti HSL non sono ciclici, così i calcoli sono più semplici. Per saturazione, Cp = 0,25 (28 - 93) + 93 = 76,8, e di leggerezza, Cp = 0,25 * (60 - 33) + 33 = 40,0. Terminate tutti i calcoli per un colore HSL finale (6, 77, 40).

Consigli e avvertenze

  • Se si desidera una interpolazione lineare tra i componenti, applicare qualsiasi funzione sia il numeratore e il denominatore di R = D / M, e prendere il valore assoluto. Per esempio provare a R = abs (sqrt (2D - D²) / sqrt (2M - m²)).
  • È possibile derivare la formula in linea d'aria nel passaggio 3 definendo altro vettore con la stessa coda come vettore gradiente ma con una testa (x, y). Utilizzando algebra vettoriale, prendere il prodotto scalare dei due vettori, e dividere per grandezza del vettore gradiente.