Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/danmadeira/cores-intermediarias
Cores intermediárias nos espaços de cores RGB, HSL e HSV
https://github.com/danmadeira/cores-intermediarias
cor cores cores-intermediarias degrade gradiente hsl hsv paleta rgb
Last synced: about 2 months ago
JSON representation
Cores intermediárias nos espaços de cores RGB, HSL e HSV
- Host: GitHub
- URL: https://github.com/danmadeira/cores-intermediarias
- Owner: danmadeira
- License: gpl-3.0
- Created: 2021-02-24T16:14:05.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2021-02-25T02:53:49.000Z (almost 4 years ago)
- Last Synced: 2023-10-20T07:51:53.437Z (about 1 year ago)
- Topics: cor, cores, cores-intermediarias, degrade, gradiente, hsl, hsv, paleta, rgb
- Language: PHP
- Homepage:
- Size: 149 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
## Cores intermediárias nos espaços de cores RGB, HSL e HSV
Um script em PHP com uma classe para o cálculo dos valores RGB/HSL/HSV das n cores intermediárias, determinando uma escala de cor, uma paleta, entre as duas cores dadas.
### Algoritmo
Para n cores intermediárias, com i variando de 1 a n, o valor de cada cor intermediária entre a e b, é dado pela equação de interpolação linear:
V = a + (b - a) * i / (n + 1)
Observações:
1. Nos espaços de cores HSL e HSV, a matiz é numericamente ordenada em um círculo de 360°, o qual permite uma continuidade do deslocamento do 360° ao 0°. Deste modo, a escala intermediária pode naturalmente transpor o fim dos 360 graus, tornando-se o grau zero, para dar continuidade na sequência. Diferentemente da escala do espaço RGB, a qual é uma reta finita 0-255, onde a equação acima serve sem adaptações.
2. As funções para HSL e HSV adotam a menor circunferência, a menor distância entre a e b, como percurso da escala de cor.
:point_right: O exemplo do uso desta classe utiliza também a classe que foi publicada em [Conversão de espaço de cores RGB-HSL-HSV](https://github.com/danmadeira/conversao-rgb-hsl)
### Exemplo de uma paleta
O gráfico da projeção de 11 cores intermediárias, entre o magenta e o amarelo, para cada espaço de cor:
![Paleta de Cores](img/paleta.png?raw=true)
### Espaços de cor
O espaço de cor red/green/blue, ou, vermelho/verde/azul, é um sistema de colorimetria para dimensionar uma cor pela combinação das quantidades destas três cores primárias. Cada cor primária tem um valor o qual pode variar em uma escala de zero (completamente enegrecida) à 255 (completamente pura). As cores primárias são aditivas, quando todas as cores estão no 0, o resultado é preto, quando todas estão em 255, o resultado é branco, e quando todos os valores forem iguais, o resultado é cinza.
O espaço de cor hue/saturation/lightness, ou, matiz/saturação/brilho, é um sistema de colorimetria para dimensionar uma cor por estas três propriedades. No HSL, o matiz é a cor pura numericamente ordenada em um círculo de cores de 360°. A saturação é o grau de pureza da cor pela mesclagem do matiz com a cor cinza, em uma escala de 0% (cinza) à 100% (pura). O brilho é a claridade da cor graduada do completamente enegrecido em 0% ao completamente embranquecido em 100%, deste modo, a cor pura está em 50% do brilho.
O espaço de cor hue/saturation/value, ou, matiz/saturação/valor, é um sistema de colorimetria para dimensionar uma cor por estas três propriedades. No HSV, o matiz é a cor pura numericamente ordenada em um círculo de cores de 360°. A saturação é o grau de pureza da cor pela mesclagem do matiz com a cor branca, em uma escala de 0% (branco) à 100% (pura). O valor é a claridade da cor graduada do completamente enegrecido em 0% ao completamente puro em 100%, deste modo, a cor pura está em 100% do valor.
### Referências
- *C++ - Numerics library - std::lerp*. C++ Reference: C++98, C++03, C++11, C++14, C++17, C++20. October 3, 2020. Disponível em:
- FORD, A.; ROBERTS, A. *Colour Space Conversions*. August 11, 1998. Disponível em:
- IBRAHEEM, N. A.; HASAN, M. M.; KHAN, R. Z.; MISHRA, P. K. *Understanding Color Models: A Review*. ARPN Journal of Science and Technology. vol. 2, no. 3, pp. 265-275. April 2012.
- MALACARA, D. *Color Vision and Colorimetry: Theory and Applications, 2nd ed*. SPIE. Bellingham, Washington, USA, 2011.
- OHTA, N.; ROBERTSON, A. R. *Colorimetry: Fundamentals and Applications*. John Wiley & Sons Ltd, 2005.
- SCHANDA, J. *Colorimetry: Understanding the CIE System*. Wiley, 2007.
- SHEVELL, S. K. *The Science of Color, Second Edition*. Optical Society of America. Elsevier, 2003.
- SMITH, A. R. *Color Gamut Transform Pairs*. Technical Memo No 7, Computer Graphics Lab, New York Institute of Technology, Jul 1978, issued as tutorial notes at SIGGRAPHs 78-82. Disponível em:
- Standard C++ Foundation. *ISO/IEC JTC1 SC22 WG21 N4860. Programming Languages - C++*. 2020-03-31. Disponível em:
- WALDMAN, N. *Math behind colorspace conversions, RGB-HSL*. May 8, 2013. Disponível em:
- WARE, C. *Information Visualization: Perception for Design, Fourth Edition*. Morgan Kaufmann, Elsevier, 2021.