FVector2 / FVector3 / FVector4

FVector2, FVector3, FVector4 — Aspose.3D Python API Reference

Pachet: aspose.threed.utilities (aspose-3d-foss 26.1.0)

Example FVector tipurile sunt cu precizie simplă (float32) clase de vectori utilizate intern de către matricile de date ale elementelor de vârf. Ele sacrifică eficiența memoriei de precizie simplă în favoarea preciziei duble a Vector2, Vector3, Vector4 claselor utilizate pentru pozițiile graficului de scenă. În practică, veți crea cel mai adesea aceste valori când populați VertexElementFVector.set_data().

from aspose.threed.utilities import FVector2, FVector3, FVector4

FVector2

Un vector float cu precizie simplă, cu două componente, cu x și y componente.

class FVector2:
    def __init__(self, x: float = 0.0, y: float = 0.0): ...

Example

ExampleExampleExampleExample
xfloatcitire/scrierePrima componentă.
yfloatcitire/scriereA doua componentă.

Example

ExampleExampleExample
length()floatLungimea euclidiană a vectorului: sqrt(x² + y²).
normalize()FVector2Returnează o copie cu lungime unitate. Returnează FVector2(0, 0) pentru vectorul zero.
dot(other)floatProdus scalar cu other.
FVector2.parse(s)FVector2Parsează un șir separat prin spații "x y" într-un FVector2.

Example +, -, * (scalar), / (scalar), și == operatori.

Example

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 vector cu trei componente, cu precizie simplă, de tip float, cu x, y, și z componente.

class FVector3:
    def __init__(self, x: float = 0.0, y: float = 0.0, z: float = 0.0): ...

FVector3 acceptă și un Vector3, Vector4, sau FVector4 ca primul său argument pentru a converti din acele tipuri.

Example

ExampleExampleExampleExample
xfloatcitire/scrierePrimul component.
yfloatcitire/scriereAl doilea component.
zfloatcitire/scriereAl treilea component.

Acceptă acces prin index: v[0], v[1], v[2].

Metode de fabrică statice

ExampleExampleExample
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)

Metode de instanță

ExampleExampleExample
normalize()FVector3Returnează o copie cu lungime unitate. Returnează vectorul zero pentru intrare de lungime zero.

Example

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 vector cu patru componente, cu virgulă mobilă de precizie simplă, cu x, y, z, și w componente. Acesta este tipul de stocare utilizat de VertexElementFVector.data.

class FVector4:
    def __init__(self, x: float = 0.0, y: float = 0.0, z: float = 0.0, w: float = 0.0): ...

FVector4 acceptă, de asemenea, un FVector3, Vector3, sau Vector4 ca primul său argument.

Example

ExampleExampleExampleExample
xfloatcitire/scrierePrima componentă.
yfloatcitire/scriereA doua componentă.
zfloatcitire/scriereA treia componentă.
wfloatcitire/scriereA patra componentă.

Acceptă acces prin index: v[0] prin v[3].

Example

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

Relația cu vectorii de precizie dublă

Precizie simplăPrecizie dublăUtilizare tipică
FVector2Vector2Coordonate UV stocate în elementele de vârf
FVector3Vector3Normale, tangente stocate în elemente de vârf
FVector4Vector4Example VertexElementFVector.data intrări; de asemenea conversia punctului de control

Când setezi datele elementului de vârf, poți transmite fie clasa de precizie. set_data() convertește Vector2/Vector3 valori la FVector4 automat.


Vezi și

 Română