FVector2 / FVector3 / FVector4

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

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

Example FVector os tipos são de precisão simples (float32) classes de vetor usadas internamente por arrays de dados de elementos de vértice. Elas trocam a eficiência de memória da precisão simples contra a precisão dupla das Vector2, Vector3, Vector4 classes usadas para posições do grafo de cena. Na prática, você criará esses valores com mais frequência ao preencher VertexElementFVector.set_data().

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

FVector2

Um vetor de ponto flutuante de precisão simples de dois componentes com x e y componentes.

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

Example

ExampleExampleExampleExample
xfloatleitura/gravaçãoPrimeiro componente.
yfloatleitura/gravaçãoSegundo componente.

Example

ExampleExampleExample
length()floatComprimento euclidiano do vetor: sqrt(x² + y²).
normalize()FVector2Retorna uma cópia de comprimento unitário. Retorna FVector2(0, 0) para o vetor zero.
dot(other)floatProduto escalar com other.
FVector2.parse(s)FVector2Analise uma string separada por espaços "x y" em um FVector2.

Example +, -, * (escalar), / (escalar), e == operadores.

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

Um vetor de ponto flutuante de precisão simples de três componentes com x, y, e z componentes.

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

FVector3 também aceita um Vector3, Vector4, ou FVector4 como seu primeiro argumento para converter desses tipos.

Example

ExampleExampleExampleExample
xfloatler/gravarPrimeiro componente.
yfloatler/gravarSegundo componente.
zfloatler/gravarTerceiro componente.

Suporta acesso por índice: v[0], v[1], v[2].

Métodos de fábrica estáticos

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)

Métodos de instância

ExampleExampleExample
normalize()FVector3Retorna uma cópia de comprimento unitário. Retorna o vetor zero para entrada de comprimento 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

Um vetor de ponto flutuante de precisão simples com quatro componentes x, y, z, e w componentes. Este é o tipo de armazenamento usado por VertexElementFVector.data.

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

FVector4 também aceita um FVector3, Vector3, ou Vector4 como seu primeiro argumento.

Example

ExampleExampleExampleExample
xfloatleitura/escritaPrimeiro componente.
yfloatleitura/escritaSegundo componente.
zfloatleitura/gravaçãoTerceiro componente.
wfloatleitura/gravaçãoQuarto componente.

Suporta acesso por índice: v[0] através de 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ção com vetores de precisão dupla

Precisão simplesPrecisão duplaUso típico
FVector2Vector2Coordenadas UV armazenadas em elementos de vértice
FVector3Vector3Normais, tangentes armazenados em elementos de vértice
FVector4Vector4Example VertexElementFVector.data entradas; também conversão de ponto de controle

Ao definir os dados do elemento de vértice, você pode passar a classe de precisão. set_data() converte Vector2/Vector3 valores para FVector4 automaticamente.


Veja Também

 Português