FVector2, FVector3, FVector4 — Aspose.3D Python API Reference
Pacchetto: aspose.threed.utilities (aspose-3d-foss 26.1.0)
Enumerations FVector i tipi sono a precisione singola (float32) classi vettoriali usate internamente dagli array di dati degli elementi dei vertici. Scambiano l’efficienza di memoria della precisione singola contro la doppia precisione delle classi usate per le posizioni del grafo della scena. Vector2, Vector3, Vector4 In pratica, creerai più spesso questi valori durante il popolamento VertexElementFVector.set_data().
from aspose.threed.utilities import FVector2, FVector3, FVector4FVector3
Un vettore float a precisione singola a due componenti con x e y componenti.
class FVector2:
def __init__(self, x: float = 0.0, y: float = 0.0): ...Enumerations
| Enumerations | Enumerations | Enumerations | Enumerations |
|---|---|---|---|
x | float | lettura/scrittura | Prima componente. |
y | float | lettura/scrittura | Seconda componente. |
Enumerations
| Enumerations | Enumerations | Enumerations |
|---|---|---|
length() | float | Lunghezza euclidea del vettore: sqrt(x² + y²). |
normalize() | FVector2 | Restituisce una copia di lunghezza unitaria. Restituisce FVector2(0, 0) per il vettore zero. |
dot(other) | float | Prodotto scalare con other. |
FVector2.parse(s) | FVector2 | Analizza una stringa separata da spazi "x y" in un FVector2. |
Enumerations +, -, * (scalare), / (scalare), e == operatori.
Enumerations
from aspose.threed.utilities import FVector2
uv = FVector2(0.5, 0.25)
print(uv.x, uv.y) # 0.5 0.25
print(uv.length()) # ~0.559
unit = uv.normalize()
print(round(unit.length(), 6)) # 1.0
a = FVector2(1.0, 0.0)
b = FVector2(0.0, 1.0)
print(a.dot(b)) # 0.0FVector3
Un vettore a virgola mobile a precisione singola a tre componenti con x, y, e z componenti.
class FVector3:
def __init__(self, x: float = 0.0, y: float = 0.0, z: float = 0.0): ...FVector3 accetta anche un Vector3, Vector4, o FVector4 come suo primo argomento per convertire da quei tipi.
Enumerations
| Enumerations | Enumerations | Enumerations | Enumerations |
|---|---|---|---|
x | float | lettura/scrittura | Primo componente. |
y | float | lettura/scrittura | Secondo componente. |
z | float | lettura/scrittura | Terzo componente. |
Supporta l’accesso per indice: v[0], v[1], v[2].
Metodi di fabbrica statici
| Enumerations | Enumerations | Enumerations |
|---|---|---|
FVector3.zero() | FVector3 | (0, 0, 0) |
FVector3.one() | FVector3 | (1, 1, 1) |
FVector3.unit_x() | FVector3 | (1, 0, 0) |
FVector3.unit_y() | FVector3 | (0, 1, 0) |
FVector3.unit_z() | FVector3 | (0, 0, 1) |
Metodi di Istanza
| Enumerations | Enumerations | Enumerations |
|---|---|---|
normalize() | FVector3 | Restituisce una copia di lunghezza unitaria. Restituisce il vettore zero per input di lunghezza zero. |
Enumerations
from aspose.threed.utilities import FVector3
n = FVector3(0.0, 1.0, 0.0)
print(n.normalize()) # FVector3(0.0, 1.0, 0.0)
up = FVector3.unit_y()
print(up.x, up.y, up.z) # 0.0 1.0 0.0
# Convert from Vector3
from aspose.threed.utilities import Vector3
v = Vector3(1.0, 2.0, 3.0)
fv = FVector3(v)
print(fv) # FVector3(1.0, 2.0, 3.0)FVector4
Un vettore a quattro componenti a precisione singola con x, y, z, e w componenti. Questo è il tipo di archiviazione usato da VertexElementFVector.data.
class FVector4:
def __init__(self, x: float = 0.0, y: float = 0.0, z: float = 0.0, w: float = 0.0): ...FVector4 accetta anche un FVector3, Vector3, o Vector4 come suo primo argomento.
Enumerations
| Enumerations | Enumerations | Enumerations | Enumerations |
|---|---|---|---|
x | float | lettura/scrittura | Prima componente. |
y | float | lettura/scrittura | Seconda componente. |
z | float | lettura/scrittura | Terza componente. |
w | float | lettura/scrittura | Quarta componente. |
Supporta l’accesso per indice: v[0] attraverso v[3].
Enumerations
from aspose.threed.utilities import FVector4, FVector3
# Direct construction
normal = FVector4(0.0, 0.0, 1.0, 0.0)
print(normal.z) # 1.0
# From FVector3
fv3 = FVector3(0.0, 1.0, 0.0)
fv4 = FVector4(fv3, 0.0)
print(fv4) # FVector4(0.0, 1.0, 0.0, 0.0)
# Index access
print(fv4[1]) # 1.0
fv4[3] = 1.0
print(fv4.w) # 1.0Relazione con i vettori a doppia precisione
| Precisione singola | Precisione doppia | Uso tipico |
|---|---|---|
FVector2 | Vector2 | Coordinate UV memorizzate negli elementi del vertice |
FVector3 | Vector3 | Normali, tangenti memorizzati negli elementi del vertice |
FVector4 | Vector4 | Enumerations VertexElementFVector.data voci; anche conversione dei punti di controllo |
Quando si impostano i dati degli elementi del vertice, è possibile passare una delle due classi di precisione. set_data() converte Vector2/Vector3 valori in FVector4 automaticamente.