Vector4

Un vettore 4D che utilizza coordinate in virgola mobile.

Descrizione

Una struttura a 4 elementi che può essere utilizzata per rappresentare coordinate 4D o qualsiasi altro insieme di 4 valori numerici.

Utilizza coordinate in virgola mobile. Per impostazione predefinita, questi valori in virgola mobile usano una precisione a 32 bit, a differenza di float che è sempre a 64 bit. Se è necessaria una precisione doppia, compila il motore con l'opzione precision=double.

Vedi Vector3i per la sua controparte con numeri interi.

Nota: In un contesto booleano, un Vector4 sarà valutato come false se è uguale a Vector4(0, 0, 0, 0). Altrimenti, un Vector4 sarà sempre valutato come true.

Proprietà

float

w

0.0

float

x

0.0

float

y

0.0

float

z

0.0

Costruttori

Vector4

Vector4()

Vector4

Vector4(from: Vector4)

Vector4

Vector4(from: Vector4i)

Vector4

Vector4(x: float, y: float, z: float, w: float)

Metodi

Vector4

abs() const

Vector4

ceil() const

Vector4

clamp(min: Vector4, max: Vector4) const

Vector4

clampf(min: float, max: float) const

Vector4

cubic_interpolate(b: Vector4, pre_a: Vector4, post_b: Vector4, weight: float) const

Vector4

cubic_interpolate_in_time(b: Vector4, pre_a: Vector4, post_b: Vector4, weight: float, b_t: float, pre_a_t: float, post_b_t: float) const

Vector4

direction_to(to: Vector4) const

float

distance_squared_to(to: Vector4) const

float

distance_to(to: Vector4) const

float

dot(with: Vector4) const

Vector4

floor() const

Vector4

inverse() const

bool

is_equal_approx(to: Vector4) const

bool

is_finite() const

bool

is_normalized() const

bool

is_zero_approx() const

float

length() const

float

length_squared() const

Vector4

lerp(to: Vector4, weight: float) const

Vector4

max(with: Vector4) const

int

max_axis_index() const

Vector4

maxf(with: float) const

Vector4

min(with: Vector4) const

int

min_axis_index() const

Vector4

minf(with: float) const

Vector4

normalized() const

Vector4

posmod(mod: float) const

Vector4

posmodv(modv: Vector4) const

Vector4

round() const

Vector4

sign() const

Vector4

snapped(step: Vector4) const

Vector4

snappedf(step: float) const

Operatori

bool

operator !=(right: Vector4)

Vector4

operator *(right: Projection)

Vector4

operator *(right: Vector4)

Vector4

operator *(right: float)

Vector4

operator *(right: int)

Vector4

operator +(right: Vector4)

Vector4

operator -(right: Vector4)

Vector4

operator /(right: Vector4)

Vector4

operator /(right: float)

Vector4

operator /(right: int)

bool

operator <(right: Vector4)

bool

operator <=(right: Vector4)

bool

operator ==(right: Vector4)

bool

operator >(right: Vector4)

bool

operator >=(right: Vector4)

float

operator [](index: int)

Vector4

operator unary+()

Vector4

operator unary-()


Enumerazioni

enum Axis: 🔗

Axis AXIS_X = 0

Valore enumerato per l'asse X. Restituito da max_axis_index() e min_axis_index().

Axis AXIS_Y = 1

Valore enumerato per l'asse Y. Restituito da max_axis_index() e min_axis_index().

Axis AXIS_Z = 2

Valore enumerato per l'asse Z. Restituito da max_axis_index() e min_axis_index().

Axis AXIS_W = 3

Valore enumerato per l'asse W. Restituito da max_axis_index() e min_axis_index().


Costanti

ZERO = Vector4(0, 0, 0, 0) 🔗

Il vettore zero, un vettore con tutti i suoi componenti impostati su 0.

ONE = Vector4(1, 1, 1, 1) 🔗

Il vettore unitario, un vettore con tutti i suoi componenti impostati su 1.

INF = Vector4(inf, inf, inf, inf) 🔗

Il vettore infinito, un vettore con tutti i suoi componenti impostati su @GDScript.INF.


Descrizioni delle proprietà

float w = 0.0 🔗

Il componente W del vettore. Accessibile anche tramite la posizione di indice [3].


float x = 0.0 🔗

Il componente X del vettore. Accessibile anche tramite la posizione di indice [0].


float y = 0.0 🔗

Il componente Y del vettore. Accessibile anche tramite la posizione di indice [1].


float z = 0.0 🔗

Il componente Z del vettore. Accessibile anche tramite la posizione di indice [2].


Descrizioni dei costruttori

Vector4 Vector4() 🔗

Costruisce un Vector4 predefinito con tutti i componenti impostati su 0.


Vector4 Vector4(from: Vector4)

Costruisce un Vector4 come copia del Vector4 specificato.


Vector4 Vector4(from: Vector4i)

Costruisce un nuovo Vector4 dal Vector4i fornito.


Vector4 Vector4(x: float, y: float, z: float, w: float)

Restituisce un Vector4 con i componenti forniti.


Descrizioni dei metodi

Vector4 abs() const 🔗

Restituisce un nuovo vettore con tutti i componenti in valori assoluti (ovvero positivi).


Vector4 ceil() const 🔗

Restituisce un nuovo vettore con tutti i componenti arrotondati per eccesso (verso l'infinito positivo).


Vector4 clamp(min: Vector4, max: Vector4) const 🔗

Restituisce un nuovo vettore con tutti i suoi componenti limitati tra i componenti di min e max, eseguendo @GlobalScope.clamp() su ciascun componente.


Vector4 clampf(min: float, max: float) const 🔗

Restituisce un nuovo vettore con tutti i suoi componenti limitati tra min e max, eseguendo @GlobalScope.clamp() su ciascun componente.


Vector4 cubic_interpolate(b: Vector4, pre_a: Vector4, post_b: Vector4, weight: float) const 🔗

Esegue un'interpolazione cubica tra questo vettore e b usando pre_a e post_b come manopole e restituisce il risultato nella posizione weight. weight è compreso tra 0,0 e 1,0, e rappresenta la quantità di interpolazione.


Vector4 cubic_interpolate_in_time(b: Vector4, pre_a: Vector4, post_b: Vector4, weight: float, b_t: float, pre_a_t: float, post_b_t: float) const 🔗

Esegue un'interpolazione cubica tra questo vettore e b usando pre_a e post_b come manopole e restituisce il risultato nella posizione weight. weight è compreso tra 0,0 e 1,0, e rappresenta la quantità di interpolazione.

Può eseguire un'interpolazione più fluida rispetto al cubic_interpolate() in base ai valori temporali.


Vector4 direction_to(to: Vector4) const 🔗

Restituisce il vettore normalizzato che punta da questo vettore a to. Ciò equivale a usare (b - a).normalized().


float distance_squared_to(to: Vector4) const 🔗

Restituisce la distanza al quadrato tra questo vettore e to.

Questo metodo è più veloce di distance_to(), quindi è preferibile se è necessario confrontare vettori o se è necessaria la distanza al quadrato per una formula.


float distance_to(to: Vector4) const 🔗

Restituisce la distanza tra questo vettore e to.


float dot(with: Vector4) const 🔗

Restituisce il prodotto scalare di questo vettore e il vettore with.


Vector4 floor() const 🔗

Restituisce un nuovo vettore con tutti i componenti arrotondati per difetto (verso l'infinito negativo).


Vector4 inverse() const 🔗

Restituisce l'inverso del vettore. È lo stesso di Vector2(1.0 / v.x, 1.0 / v.y, 1.0 / v.z, 1.0 / v.w).


bool is_equal_approx(to: Vector4) const 🔗

Restituisce true se questo vettore e to sono approssimativamente uguali, eseguendo @GlobalScope.is_equal_approx() su ciascun componente.


bool is_finite() const 🔗

Restituisce true se questo vettore è finito, eseguendo @GlobalScope.is_finite() su ciascun componente.


bool is_normalized() const 🔗

Restituisce true se il vettore è normalizzato, ovvero la sua lunghezza è approssimativamente uguale a 1.


bool is_zero_approx() const 🔗

Restituisce true se i valori di questo vettore sono approssimativamente zero, eseguendo @GlobalScope.is_zero_approx() su ciascun componente.

Questo metodo è più veloce di is_equal_approx() con un valore come vettore zero.


float length() const 🔗

Restituisce la lunghezza (magnitudine) di questo vettore.


float length_squared() const 🔗

Restituisce la lunghezza (magnitudine) al quadrato di questo vettore.

Questo metodo è più veloce di length(), quindi è preferibile se è necessario confrontare vettori o se è necessaria la distanza al quadrato per una formula.


Vector4 lerp(to: Vector4, weight: float) const 🔗

Restituisce il risultato dell'interpolazione lineare tra questo vettore e to per la quantità weight. weight è compreso tra 0.0 e 1.0, che rappresenta la quantità di interpolazione.


Vector4 max(with: Vector4) const 🔗

Restituisce il massimo, componente per componente, di questo vettore e with, equivalente a Vector4(maxf(x, with.x), maxf(y, with.y), maxf(z, with.z), maxf(w, with.w)).


int max_axis_index() const 🔗

Restituisce l'asse del valore più alto del vettore. Vedi le costanti AXIS_*. Se tutti i componenti sono uguali, questo metodo restituisce AXIS_X.


Vector4 maxf(with: float) const 🔗

Restituisce il massimo, componente per componente, di questo vettore e with, equivalente a Vector4(maxf(x, with), maxf(y, with), maxf(z, with), maxf(w, with)).


Vector4 min(with: Vector4) const 🔗

Restituisce il minimo, componente per componente, di questo vettore e with, equivalente a Vector4(minf(x, with.x), minf(y, with.y), minf(z, with.z), minf(w, with.w)).


int min_axis_index() const 🔗

Restituisce l'asse del valore più basso del vettore. Vedi le costanti AXIS_*. Se tutti i componenti sono uguali, questo metodo restituisce AXIS_W.


Vector4 minf(with: float) const 🔗

Restituisce il minimo, componente per componente, di questo vettore e with, equivalente a Vector4(minf(x, with), minf(y, with), minf(z, with), minf(w, with)).


Vector4 normalized() const 🔗

Restituisce il risultato della scalatura del vettore a lunghezza unitaria. Equivalente a v / v.length(). Restituisce (0, 0, 0, 0) se v.length() == 0. Vedi anche is_normalized().

Nota: Questa funzione potrebbe restituire valori non corretti se la lunghezza del vettore passato è vicina a zero.


Vector4 posmod(mod: float) const 🔗

Restituisce un vettore composto dal risultato di @GlobalScope.fposmod() dai componenti di questo vettore e mod.


Vector4 posmodv(modv: Vector4) const 🔗

Restituisce un vettore composto dal risultato di @GlobalScope.fposmod() dai componenti di questo vettore e i componenti di modv.


Vector4 round() const 🔗

Restituisce un nuovo vettore con tutti i componenti arrotondati all'intero più vicino, con i casi a metà arrotondati lontani da zero.


Vector4 sign() const 🔗

Restituisce un nuovo vettore con ogni componente impostato su 1.0 se è positivo, -1.0 se è negativo e 0.0 se è zero. Il risultato è identico alla chiamata di @GlobalScope.sign() su ciascun componente.


Vector4 snapped(step: Vector4) const 🔗

Restituisce un nuovo vettore con ciascun componente arrotondato al multiplo più vicino del componente corrispondente in step. Può anche essere utilizzato per arrotondare i componenti a un numero arbitrario di decimali.


Vector4 snappedf(step: float) const 🔗

Restituisce un nuovo vettore con ogni componente arrotondato al multiplo più vicino di step. Può anche essere utilizzato per arrotondare i componenti a un numero arbitrario di decimali.


Descrizioni degli operatori

bool operator !=(right: Vector4) 🔗

Restituisce true se i vettori non sono uguali.

Nota: A causa di errori di precisione per virgola mobile, considera invece utilizzare is_equal_approx(), che è più affidabile.

Nota: I vettori con componenti @GDScript.NAN non si comportano allo stesso modo di altri vettori. Perciò, i risultati di questa operazione potrebbero non essere accurati se valori NaN sono inclusi.


Vector4 operator *(right: Projection) 🔗

Trasforma (moltiplica) il Vector4 per la trasposta della matrice Projection fornita.

Per trasformare per inverso di una proiezione può essere usato projection.inverse() * vector. Vedi Projection.inverse().


Vector4 operator *(right: Vector4) 🔗

Moltiplica ogni componente del Vector4 per i componenti del Vector4 fornito.

print(Vector3i(10, 20, 30) * Vector3i(3, 4, 5)) # Stampa (30.0, 80.0, 150.0, 240.0)

Vector4 operator *(right: float) 🔗

Moltiplica ogni componente del Vector3i per il float fornito.

print(Vector4(10, 20, 30, 40) * 2) # Stampa (20.0, 40.0, 60.0, 80.0)

Vector4 operator *(right: int) 🔗

Moltiplica ogni componente del Vector4 per l'int fornito.


Vector4 operator +(right: Vector4) 🔗

Aggiunge ogni componente del Vector4 con i componenti del Vector4 fornito.

print(Vector4(10, 20, 30, 40) + Vector4(3, 4, 5, 6)) # Stampa (13.0, 24.0, 35.0, 46.0)

Vector4 operator -(right: Vector4) 🔗

Sottrae ogni componente del Vector4 dai componenti del Vector4 fornito.

print(Vector4(10, 20, 30, 40) - Vector4(3, 4, 5, 6)) # Stampa (7.0, 16.0, 25.0, 34.0)

Vector4 operator /(right: Vector4) 🔗

Divide ogni componente del Vector4 per i componenti del Vector4 fornito.

print(Vector4(10, 20, 30, 40) / Vector4(2, 5, 3, 4)) # Stampa (5.0, 4.0, 10.0, 10.0)

Vector4 operator /(right: float) 🔗

Divide ogni componente del Vector4 per il float fornito.

print(Vector4(10, 20, 30, 40) / 2 # Stampa (5.0, 10.0, 15.0, 20.0)

Vector4 operator /(right: int) 🔗

Divide ogni componente del Vector4 per l'int fornito.


bool operator <(right: Vector4) 🔗

Confronta due vettori Vector4 verificando prima se il valore X del vettore di sinistra è minore del valore X del vettore right. Se i valori X sono esattamente uguali, ripete questa verifica con i valori Y dei due vettori, i valori Z dei due vettori e poi con i valori W. Questo operatore è utile per ordinare i vettori.

Nota: I vettori con componenti @GDScript.NAN non si comportano come altri vettori. Pertanto, i risultati di questo operatore potrebbero non essere accurati se valori NAN sono inclusi.


bool operator <=(right: Vector4) 🔗

Confronta due vettori Vector4 verificando prima se il valore X del vettore di sinistra è minore o uguale al valore X del vettore right. Se i valori X sono esattamente uguali, ripete questa verifica con i valori Y dei due vettori, i valori Z dei due vettori e poi con i valori W. Questo operatore è utile per ordinare i vettori.

Nota: I vettori con componenti @GDScript.NAN non si comportano come altri vettori. Pertanto, i risultati di questo operatore potrebbero non essere accurati se valori NAN sono inclusi.


bool operator ==(right: Vector4) 🔗

Restituisce true se i vettori sono esattamente uguali.

Nota: A causa di errori di precisione per virgola mobile, considera invece utilizzare is_equal_approx(), che è più affidabile.

Nota: I vettori con componenti @GDScript.NAN non si comportano come altri vettori. Pertanto, i risultati di questo operatore potrebbero non essere accurati se valori NAN sono inclusi.


bool operator >(right: Vector4) 🔗

Confronta due vettori Vector4 verificando prima se il valore X del vettore di sinistra è maggiore del valore X del vettore right. Se i valori X sono esattamente uguali, ripete questa verifica con i valori Y dei due vettori, i valori Z dei due vettori e poi con i valori W. Questo operatore è utile per ordinare i vettori.

Nota: I vettori con componenti @GDScript.NAN non si comportano come altri vettori. Pertanto, i risultati di questo operatore potrebbero non essere accurati se valori NAN sono inclusi.


bool operator >=(right: Vector4) 🔗

Confronta due vettori Vector4 verificando prima se il valore X del vettore di sinistra è maggiore o uguale al valore X del vettore right. Se i valori X sono esattamente uguali, ripete questa verifica con i valori Y dei due vettori, i valori Z dei due vettori e poi con i valori W. Questo operatore è utile per ordinare i vettori.

Nota: I vettori con componenti @GDScript.NAN non si comportano come altri vettori. Pertanto, i risultati di questo operatore potrebbero non essere accurati se valori NAN sono inclusi.


float operator [](index: int) 🔗

Accede ai componenti del vettore attraverso il loro indice (index). v[0] è equivalente a v.x, v[1] è equivalente a v.y, v[2] è equivalente a v.z, v[3] è equivalente a v.w.


Vector4 operator unary+() 🔗

Restituisce lo stesso valore come se + non ci fosse. Il + unario non fa nulla, ma a volte può rendere il tuo codice più leggibile.


Vector4 operator unary-() 🔗

Restituisce il valore negativo del Vector4. Equivale a scrivere Vector4(-v.x, -v.y, -v.z, -v.w). Questa operazione inverte la direzione del vettore mantenendo la stessa magnitudine. Con i float, il numero zero può essere sia positivo sia negativo.