"""
Tipo `Colore`, funzioni per produrre colori e costanti per colori notevoli.
"""
from __future__ import annotations
from pytamaro.color import Color
from pytamaro.color_functions import rgb_color, hsl_color, hsv_color
Colore = Color
"""
Rappresenta un colore.
Un colore ha anche un grado di opacità,
da completamente trasparente (come il colore `trasparente`)
a completamente opaco (come il colore `rosso`).
"""
[docs]def colore_rgb(rosso: int, verde: int, blu: int, opacita: float = 1.0) -> Colore:
"""
Ritorna un colore con le componenti indicate per rosso (R), verde (G) e blu (B) e un
certo grado di opacità (alpha, A).
.. figure:: https://upload.wikimedia.org/wikipedia/commons/thumb/b/b4/RGBCube_a.svg/524px-RGBCube_a.svg.png
:height: 120px
:align: center
`Cubo RGB (SharkD via Wikimedia Commons) <https://commons.wikimedia.org/wiki/File:RGBCube_a.svg>`_
:param rosso: componente rosso [0-255]
:param verde: componente verde [0-255]
:param blu: componente blu [0-255]
:param opacita: opacità (alpha) del colore, dove 0 significa completamente
trasparente e 1 completamente opaco.
Di default, tutti i colori sono completamente opachi.
:returns: un colore con le componenti RGBA indicate
"""
return rgb_color(rosso, verde, blu, opacita)
[docs]def colore_hsv(tonalita: float, saturazione: float, valore: float, opacita: float = 1.0) -> Colore:
"""
Ritorna un colore con la tonalità (H), saturazione (S) e valore (V) indicati,
e un certo grado di opacità (alpha, A).
.. figure:: https://upload.wikimedia.org/wikipedia/commons/4/4e/HSV_color_solid_cylinder.png
:height: 120px
:align: center
`Cilindro HSV (SharkD via Wikimedia Commons) <https://commons.wikimedia.org/wiki/File:HSV_color_solid_cylinder.png>`_
:param tonalita: tonalità del colore [0-360]
:param saturazione: saturazione del colore [0-1]
:param valore: quantità di luce applicata [0-1]
:param opacita: opacità (alpha) del colore, dove 0 significa completamente
trasparente e 1 completamente opaco.
Di default, tutti i colori sono completamente opachi.
:returns: un colore con le componenti HSVA indicate
"""
return hsv_color(tonalita, saturazione, valore, opacita)
[docs]def colore_hsl(tonalita: float, saturazione: float, luce: float, opacita: float = 1.0) -> Colore:
"""
Ritorna un colore con la tonalità (H), saturazione (S) e luce (L) indicati,
e un certo grado di opacità (alpha, A).
.. figure:: https://upload.wikimedia.org/wikipedia/commons/3/35/HSL_color_solid_cylinder.png
:height: 120px
:align: center
`Cilindro HSL: SharkD via Wikimedia Commons <https://commons.wikimedia.org/wiki/File:HSL_color_solid_cylinder.png>`_
:param tonalita: tonalità del colore [0-360]
:param saturazione: saturazione del colore [0-1]
:param luce: quantità di bianco o nero applicata [0-1].
Colori completamente saturi hanno un valore di luce di 1/2.
:param opacita: opacità (alpha) del colore, dove 0 significa completamente
trasparente e 1 completamente opaco.
Di default, tutti i colori sono completamente opachi.
:returns: un colore con le componenti HSLA indicate
"""
return hsl_color(tonalita, saturazione, luce, opacita)