Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
Plane
Un piano in forma normale assiana.
Descrizione
Represents a normalized plane equation. normal is the normal of the plane (a, b, c normalized), and d is the distance from the origin to the plane (in the direction of "normal"). "Over" or "Above" the plane is considered the side of the plane towards where the normal is pointing.
Note: In a boolean context, a plane will evaluate to false if all its components equal 0. Otherwise, a plane will always evaluate to true.
Tutorial
Proprietà
|
||
|
||
|
||
|
||
|
Costruttori
Plane() |
|
Metodi
distance_to(point: Vector3) const |
|
get_center() const |
|
intersect_3(b: Plane, c: Plane) const |
|
intersects_ray(from: Vector3, dir: Vector3) const |
|
intersects_segment(from: Vector3, to: Vector3) const |
|
is_equal_approx(to_plane: Plane) const |
|
is_finite() const |
|
is_point_over(point: Vector3) const |
|
normalized() const |
|
Operatori
operator !=(right: Plane) |
|
operator *(right: Transform3D) |
|
operator ==(right: Plane) |
|
Costanti
PLANE_YZ = Plane(1, 0, 0, 0) 🔗
Un piano che si estende lungo gli assi Y e Z (il vettore normale punta verso +X).
PLANE_XZ = Plane(0, 1, 0, 0) 🔗
Un piano che si estende lungo gli assi X e Z (il vettore normale punta verso +Y).
PLANE_XY = Plane(0, 0, 1, 0) 🔗
Un piano che si estende lungo gli assi X e Y (il vettore normale punta verso +Z).
Descrizioni delle proprietà
La distanza dall'origine al piano, espressa in termini di normal (in base alla sua direzione e magnitudine). La distanza assoluta effettiva dall'origine al piano può essere calcolata come abs(d) / normal.length() (se normal ha lunghezza zero, allora questo Plane non rappresenta un piano valido).
Nell'equazione scalare del piano ax + by + cz = d, questo è d, mentre le coordinate (a, b, c) sono rappresentate dalla proprietà normal.
Vector3 normal = Vector3(0, 0, 0) 🔗
La normale del piano, in genere un vettore unitario. Non dovrebbe essere un vettore zero poiché un Plane con tale normal non rappresenta un piano valido.
Nell'equazione scalare del piano ax + by + cz = d, questo è il vettore (a, b, c), dove d è la proprietà d.
Il componente X del vettore normal del piano.
Il componente Y del vettore normal del piano.
Il componente Z del vettore normal del piano.
Descrizioni dei costruttori
Costruisce un Plane predefinito con tutti i componenti impostati su 0.
Costruisce un Plane come copia del Plane specificato.
Plane Plane(a: float, b: float, c: float, d: float)
Crea un piano dai quattro parametri. I tre componenti della normal del piano risultante sono a, b e c, e il piano ha una distanza di d dall'origine.
Crea un piano dal vettore normale. Il piano intersecherà l'origine.
Il normal del piano deve essere un vettore unitario.
Plane Plane(normal: Vector3, d: float)
Crea un piano dal vettore normale e dalla distanza del piano dall'origine.
Il normal del piano deve essere un vettore unitario.
Plane Plane(normal: Vector3, point: Vector3)
Crea un piano dal vettore normale e da un punto sul piano.
Il normal del piano deve essere un vettore unitario.
Plane Plane(point1: Vector3, point2: Vector3, point3: Vector3)
Crea un piano a partire da tre punti, forniti in senso orario.
Descrizioni dei metodi
float distance_to(point: Vector3) const 🔗
Restituisce la distanza più breve dal piano alla posizione point. Se il punto è sopra il piano, la distanza sarà positiva. Se è sotto, la distanza sarà negativa.
Restituisce il centro del piano.
bool has_point(point: Vector3, tolerance: float = 1e-05) const 🔗
Restituisce true se la posizione point è all'interno del piano. Il confronto utilizza una soglia minima di tolleranza personalizzata (tolerance).
Variant intersect_3(b: Plane, c: Plane) const 🔗
Restituisce il punto di intersezione dei tre piani b, c e questo piano. Se nessuna intersezione viene trovata, viene restituito null.
Variant intersects_ray(from: Vector3, dir: Vector3) const 🔗
Restituisce il punto di intersezione di un raggio costituito dalla posizione from e dalla direzione normale dir con questo piano. Se nessuna intersezione viene trovata, viene restituito null.
Variant intersects_segment(from: Vector3, to: Vector3) const 🔗
Restituisce il punto di intersezione di un segmento dalla posizione from alla posizione to con questo piano. Se nessuna intersezione viene trovata, viene restituito null.
bool is_equal_approx(to_plane: Plane) const 🔗
Restituisce true se questo piano e to_plane sono approssimativamente eguali, chiamando @GlobalScope.is_equal_approx() su ogni componente.
Restituisce true se questo piano è finito, chiamando @GlobalScope.is_finite() su ogni componente.
bool is_point_over(point: Vector3) const 🔗
Restituisce true se la posizione point si trova sopra il piano.
Restituisce una copia del piano, con normal normalizzato (diventando un vettore unitario). Restituisce Plane(0, 0, 0, 0) se normal non può essere normalizzato (ha lunghezza zero).
Vector3 project(point: Vector3) const 🔗
Restituisce la proiezione ortogonale del punto point in un punto nel piano.
Descrizioni degli operatori
bool operator !=(right: Plane) 🔗
Restituisce true se i piani non sono uguali.
Nota: A causa di errori di precisione in virgola mobile, si consiglia di utilizzare invece is_equal_approx(), che è più affidabile.
Plane operator *(right: Transform3D) 🔗
Trasforma inversamente (moltiplica) il Plane per la matrice di trasformazione Transform3D fornita.
plane * transform è equivalente a transform.affine_inverse() * plane. Vedi Transform3D.affine_inverse().
bool operator ==(right: Plane) 🔗
Restituisce true se i piani sono esattamente uguali.
Nota: A causa di errori di precisione in virgola mobile, si consiglia di utilizzare invece is_equal_approx(), che è più affidabile.
Restituisce lo stesso valore come se + non ci fosse. Il + unario non fa nulla, ma a volte può rendere il tuo codice più leggibile.
Restituisce il valore negativo di Plane. Equivale a scrivere Plane(-p.normal, -p.d). Questa operazione inverte la direzione del vettore normale e inverte anche il valore della distanza, ottenendo un piano che si trova nello stesso posto, ma rivolto nella direzione opposta.