FVector2 / FVector3 / FVector4

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, FVector4

FVector3

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

EnumerationsEnumerationsEnumerationsEnumerations
xfloatlettura/scritturaPrima componente.
yfloatlettura/scritturaSeconda componente.

Enumerations

EnumerationsEnumerationsEnumerations
length()floatLunghezza euclidea del vettore: sqrt(x² + y²).
normalize()FVector2Restituisce una copia di lunghezza unitaria. Restituisce FVector2(0, 0) per il vettore zero.
dot(other)floatProdotto scalare con other.
FVector2.parse(s)FVector2Analizza 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.0

FVector3

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

EnumerationsEnumerationsEnumerationsEnumerations
xfloatlettura/scritturaPrimo componente.
yfloatlettura/scritturaSecondo componente.
zfloatlettura/scritturaTerzo componente.

Supporta l’accesso per indice: v[0], v[1], v[2].

Metodi di fabbrica statici

EnumerationsEnumerationsEnumerations
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

EnumerationsEnumerationsEnumerations
normalize()FVector3Restituisce 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

EnumerationsEnumerationsEnumerationsEnumerations
xfloatlettura/scritturaPrima componente.
yfloatlettura/scritturaSeconda componente.
zfloatlettura/scritturaTerza componente.
wfloatlettura/scritturaQuarta 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.0

Relazione con i vettori a doppia precisione

Precisione singolaPrecisione doppiaUso tipico
FVector2Vector2Coordinate UV memorizzate negli elementi del vertice
FVector3Vector3Normali, tangenti memorizzati negli elementi del vertice
FVector4Vector4Enumerations 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.


Vedi anche

 Italiano