# [name]

Classe che rappresenta un colore.

L'iterazione di un'istanza [name] produrrà i suoi componenti (r, g, b) nell'ordine corrispondente.

## Codice di Esempio

Un colore può essere inizializzato in qualsiasi dei seguenti modi:

`// Un costruttore vuoto - per impostazione predefinita sarà bianco const color1 = new THREE.Color(); // Colore esadecimale (raccomandato) const color2 = new THREE.Color( 0xff0000 ); // Una stringa RGB const color3 = new THREE.Color("rgb(255, 0, 0)"); const color4 = new THREE.Color("rgb(100%, 0%, 0%)"); // Nome del colore X11 - tutti i 140 nomi dei colori sono supportati. // Si noti la mancanza del CamelCase nel nome const color5 = new THREE.Color( 'skyblue' ); // Una stringa HSL const color6 = new THREE.Color("hsl(0, 100%, 50%)"); // Separa i valori RGB tra 0 e 1 const color7 = new THREE.Color( 1, 0, 0 );`

## Costruttore

### [name]( [param:Color_Hex_or_String r], [param:Float g], [param:Float b] )

[page:Color_Hex_or_String r] - (opzionale) Se gli argomenti [page:Float g] e [page:Float b] sono definiti, indica il componente rosso del colore. Se non sono definiti, questo può essere una [link:https://en.wikipedia.org/wiki/Web_colors#Hex_triplet tripletta esadecimale] (consigliato), una stringa CSS-style, o un'altra istanza `Color`.
[page:Float g] - (opzionale) Se è definito, indica la componente verde del colore.
[page:Float b] - (opzionale) Se è definito, indica la componente blu del colore.
Si noti che il metodo standard per definire il colore in three.js è con una [link:https://en.wikipedia.org/wiki/Web_colors#Hex_triplet tripletta esadecimale], questo metodo viene utilizzato nel resto della documentazione.
Quando tutti gli argomenti sono definiti allora [page:Color_Hex_or_String r] è il componente rosso, [page:Float g] è il componente verde e [page:Float b] è il componente blue del colore.
Quando solo [page:Color_Hex_or_String r] è definito:

- Può essere una [link:https://en.wikipedia.org/wiki/Web_colors#Hex_triplet tripletta esadecimale] che rappresenta il colore (consigliato).
- Può essere un'altra istanza di Color.
- Può essere una stringa CSS-style. Per esempio:
  - 'rgb(250, 0,0)'
  - 'rgb(100%,0%,0%)'
  - 'hsl(0, 100%, 50%)'
  - '#ff0000'
  - '#f00'
  - 'red'

## Proprietà

### [property:Boolean isColor]

Flag di sola lettura per verificare se l'oggetto dato è di tipo [name].

### [property:Float r]

Valore del canale rosso tra 0 e 1. Il valore predefinito è 1.

### [property:Float g]

Valore del canale verde tra 0 e 1. Il valore predefinito è 1.

### [property:Float b]

Valore del canale blu tra 0 e 1. Il valore predefinito è 1.

## Metodi

### [method:this add]( [param:Color color] )

Aggiunge i valori RGB del [page:Color colore] ai valori RGB di questo colore.

### [method:this addColors]( [param:Color color1], [param:Color color2] )

Imposta questi valori RGB del colore alla somma dei valori RGB di [page:Color color1] e [page:Color color2].

### [method:this addScalar]( [param:Number s] )

Aggiunge [page:Number s] ai valori RGB di questo colore.

### [method:Color clone]()

Restituisce un nuovo Color con gli stessi valori [page:.r r], [page:.g g] e [page:.b b] di questo.

### [method:this copy]( [param:Color color] )

Copia i parametri [page:.r r], [page:.g g] e [page:.b b] dal [page:Color colore] in questo colore.

### [method:this convertLinearToSRGB]()

Converte questo colore dallo spazio lineare allo spazio sRGB.

### [method:this convertSRGBToLinear]()

Converte questo colore dallo spazio sRGB allo spazio lineare.

### [method:this copyLinearToSRGB]( [param:Color color] )

[page:Color color] - Colore da copiare.
Copia il colore passato in questo colore, e poi converte questo colore dallo spazio lineare allo spazio sRGB.

### [method:this copySRGBToLinear]( [param:Color color] )

[page:Color color] - Colore da copiare.
Copia il colore passato in questo colore, e poi converte questo colore dallo spazio sRGB allo spazio lineare.

### [method:Boolean equals]( [param:Color color] )

Compara i valori RGB del [page:Color colore] con quelli di questo oggetto. Restituisce true se sono gli stessi, false altrimenti.

### [method:this fromArray]( [param:Array array], [param:Integer offset] )

[page:Array array] - [page:Array] di float nella forma [ [page:Float r], [page:Float g], [page:Float b] ].
[page:Integer offset] - Un offset opzionale nell'array.
Imposta i componenti di questo colore in base a un array formattato come [ [page:Float r], [page:Float g], [page:Float b] ].

### [method:this fromBufferAttribute]( [param:BufferAttribute attribute], [param:Integer index] )

[page:BufferAttribute attribute] - l'attributo sorgente.
[page:Integer index] - l'indice dell'attributo.
Imposta i componenti del colore dall'[page:BufferAttribute attributo].

### [method:Integer getHex]( [param:string colorSpace] = SRGBColorSpace )

Restituisce il valore esadecimale di questo colore.

### [method:String getHexString]( [param:string colorSpace] = SRGBColorSpace )

Restituisce il valore esadecimale di questo colore come una stringa (per esempio, 'FFFFFF').

### [method:Object getHSL]( [param:Object target], [param:string colorSpace] = LinearSRGBColorSpace )

[page:Object target] - questo risultato sarà copiato in questo Oggetto. Aggiunge le chiavi h, s e l all'oggetto (se non è già presente).
Converte i valori [page:.r r], [page:.g g] e [page:.b b] del Color al formato [link:https://en.wikipedia.org/wiki/HSL_and_HSV HSL] e restituisce un oggetto della forma: `{ h: 0, s: 0, l: 0 }`

### [method:Color getRGB]( [param:Color target], [param:string colorSpace] = LinearSRGBColorSpace )

[page:Color target] - questo risultato sarà copiato in questo oggetto.
Returns the RGB values of this color as an instance of [page:Color].

### [method:String getStyle]( [param:string colorSpace] = SRGBColorSpace )

Restituisce il valore di questo colore come una stringa CSS style. Esempio: `rgb(255,0,0)`.

### [method:this lerp]( [param:Color color], [param:Float alpha] )

[page:Color color] - colore su cui convergere.
[page:Float alpha] - fattore di interpolazione nell'intervallo chiuso `[0, 1]`.
Interpola linearmente i valori RGB di questo colore verso i valori RGB dell'argomento passato. L'argomento alfa può essere considerato come il rapporto tra i due colori, dove `0.0` è questo colore e `1.0` è il primo argomento.

### [method:this lerpColors]( [param:Color color1], [param:Color color2], [param:Float alpha] )

[page:Color color1] - [page:Color colore] iniziale.
[page:Color color2] - [page:Color colore] verso cui interpolare.
[page:Float alpha] - fattore interpolazione, tipicamente nell'intervallo chiuso `[0, 1]`.
Imposta questo colore per essere il colore interpolato linearmente tra [page:Color color1] e [page:Color color2] dove alfa è la distanza percentuale lungo la linea che collega i due colori - alfa = 0 sarà [page:Color color1], e alpha = 1 sarà [page:Color color2].

### [method:this lerpHSL]( [param:Color color], [param:Float alpha] )

[page:Color color] - colore su cui convergere.
[page:Float alpha] - fattore di interpolazione nell'intervallo chiuso`[0, 1]`.
Interpola linearmente i valori HSL di questo colore verso i valori HSL dell'argomento passato. Si differenzia dal classico [page:.lerp] non interpolando direttamente da un colore all'altro, ma passando invece attraverso tutte le sfumature tra questi due colori. L'argomento alfa può essere considerato come il rapporto tra i due colori, dove `0.0` è questo colore e `1.0` è il primo argomento.

### [method:this multiply]( [param:Color color] )

Moltiplica i valori RGB di questo colore per i valori RGB del colore passato.

### [method:this multiplyScalar]( [param:Number s] )

Moltiplica i valori RGB di questo colore per [page:Number s].

### [method:this offsetHSL]( [param:Float h], [param:Float s], [param:Float l] )

Aggiunge [page:Float h], [page:Float s] e [page:Float l] passati ai valori di questo colore. Internamente, converte i valori [page:.r r], [page:.g g] e [page:.b b] del colore a HSL, aggiunge [page:Float h], [page:Float s], e [page:Float l] e poi converte il colore nero a RGB.

### [method:this set]( [param:Color_Hex_or_String r], [param:Float g], [param:Float b] )

[page:Color_Hex_or_String r] - (optional) If arguments [page:Float g] and [page:Float b] are defined, the red component of the color. If they are not defined, it can be a [link:https://en.wikipedia.org/wiki/Web_colors#Hex_triplet hexadecimal triplet] (recommended), a CSS-style string, or another `Color` instance.
[page:Float g] - (optional) If it is defined, the green component of the color.
[page:Float b] - (optional) If it is defined, the blue component of the color.
See the Constructor above for full details about possible arguments. Delegates to [page:.copy], [page:.setStyle], [page:.setRGB] or [page:.setHex] depending on input type.

### [method:this setHex]( [param:Integer hex], [param:string colorSpace] = SRGBColorSpace )

[page:Integer hex] - formato [link:https://en.wikipedia.org/wiki/Web_colors#Hex_triplet tripletta esadecimale].
Imposta questo colore da un valore esadecimale.

### [method:this setHSL]( [param:Float h], [param:Float s], [param:Float l], [param:string colorSpace] = LinearSRGBColorSpace )

[page:Float h] - Valore di tonalità compreso tra 0.0 e 1.0
[page:Float s] - Valore di saturazione compreso tra 0.0 e 1.0
[page:Float l] - Valore di luminosità compreso tra 0.0 e 1.0
Imposta il colore dai valori HSL.

### [method:this setRGB]( [param:Float r], [param:Float g], [param:Float b], [param:string colorSpace] = LinearSRGBColorSpace )

[page:Float r] - Valore del canale rosso tra 0.0 e 1.0.
[page:Float g] - Valore del canale verde tra 0.0 e 1.0.
[page:Float b] - Valore del canale blu tra 0.0 e 1.0.
Imposta questo colore dai valori RGB.

### [method:this setScalar]( [param:Float scalar] )

[page:Float scalar] - un valore tra 0.0 e 1.0.
Imposta tutti e tre i componenti del colore al valore [page:Float scalare].

### [method:this setStyle]( [param:String style], [param:string colorSpace] = SRGBColorSpace )

[page:String style] - colore come una stringa CSS-style.
Imposta questo colore da una stringa CSS. Per esempio, "rgb(250, 0,0)", "rgb(100%, 0%, 0%)", "hsl(0, 100%, 50%)", "#ff0000", "#f00", o "red" ( o qualsiasi [link:https://en.wikipedia.org/wiki/X11_color_names#Color_name_chart nome dei colori X11] - tutti i 140 nomi dei colori sono supportati ).
Sono accettati anche colori traslucidi come "rgba(255, 0, 0, 0.5)" e "hsla(0, 100%, 50%, 0.5)", ma le coordinate del canale alfa verranno eliminate.
Si noti che per i nomi dei colori X11, più parole come Dark Orange diventano la stringa 'darkorange'.

### [method:this setColorName]( [param:String style], [param:string colorSpace] = SRGBColorSpace )

[page:String style] - nome del colore ( dai [link:https://en.wikipedia.org/wiki/X11_color_names#Color_name_chart nomi dei colori X11] ).
Imposta questo colore dal nome del colore. Più veloce del metodo [page:.setStyle] se non hai bisogno di altri formati in stile CSS.
Per convenienza, la lista dei nomi è esposta in Color.NAMES come un hash: `Color.NAMES.aliceblue // returns 0xF0F8FF`

### [method:this sub]( [param:Color color] )

Sottrae i componenti RGB del colore dato dai componenti RGB di questo colore. Se questo ritorna un componente negativo, tale componente viene impostato a zero.

### [method:Array toArray]( [param:Array array], [param:Integer offset] )

[page:Array array] - Un array opzionale in cui memorizzare il colore.
[page:Integer offset] - Un offset opzionale nell'array.
Restituisce un array della forma [ r, g, b ].

### [method:Number toJSON]()

This methods defines the serialization result of [name]. Returns the color as a hexadecimal value.

## Source

[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]