FVector2, FVector3, FVector4 — Aspose.3D Python API Reference
Pakket: aspose.threed.utilities (aspose-3d-foss 26.1.0)
Example FVector typen zijn enkelprecisie (float32) vectorklassen die intern worden gebruikt door vertex‑elementgegevensarrays. Ze ruilen de geheugenefficiëntie van enkelprecisie in tegen de dubbelprecisie van de Vector2, Vector3, Vector4 klassen die worden gebruikt voor scene‑graphposities. In de praktijk zul je deze waarden het vaakst aanmaken bij het vullen van VertexElementFVector.set_data().
from aspose.threed.utilities import FVector2, FVector3, FVector4FVector2
Een tweedelige enkelprecisie float‑vector met x en y componenten.
class FVector2:
def __init__(self, x: float = 0.0, y: float = 0.0): ...Example
| Example | Example | Example | Example |
|---|---|---|---|
x | float | lezen/schrijven | Eerste component. |
y | float | lezen/schrijven | Tweede component. |
Example
| Example | Example | Example |
|---|---|---|
length() | float | Euclidische lengte van de vector: sqrt(x² + y²). |
normalize() | FVector2 | Retourneer een eenheidslengte‑kopie. Retourneert FVector2(0, 0) voor de nulvector. |
dot(other) | float | Inwendig product met other. |
FVector2.parse(s) | FVector2 | Parse een spatie-gescheiden string "x y" naar een FVector2. |
Example +, -, * (scalar), / (scalar), en == operatoren.
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.0FVector3
Een drievoudige enkelprecisie floatvector met x, y, en z componenten.
class FVector3:
def __init__(self, x: float = 0.0, y: float = 0.0, z: float = 0.0): ...FVector3 accepteert ook een Vector3, Vector4, of FVector4 als eerste argument om van die typen te converteren.
Example
| Example | Example | Example | Example |
|---|---|---|---|
x | float | lezen/schrijven | Eerste component. |
y | float | lezen/schrijven | Tweede component. |
z | float | lezen/schrijven | Derde component. |
Ondersteunt indextoegang: v[0], v[1], v[2].
Statische fabrieksmethoden
| Example | Example | Example |
|---|---|---|
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) |
Instantiemethoden
| Example | Example | Example |
|---|---|---|
normalize() | FVector3 | Retourneer een eenheidslengtekopie. Retourneert de nulvector voor invoer met lengte nul. |
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
Een viercomponenten enkelprecisie floatvector met x, y, z, en w componenten. Dit is het opslagtype dat wordt gebruikt door VertexElementFVector.data.
class FVector4:
def __init__(self, x: float = 0.0, y: float = 0.0, z: float = 0.0, w: float = 0.0): ...FVector4 accepteert ook een FVector3, Vector3, of Vector4 als zijn eerste argument.
Example
| Example | Example | Example | Example |
|---|---|---|---|
x | float | lezen/schrijven | Eerste component. |
y | float | lezen/schrijven | Tweede component. |
z | float | lezen/schrijven | Derde component. |
w | float | lezen/schrijven | Vierde component. |
Ondersteunt indextoegang: v[0] via 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.0Relatie tot double-precisie vectoren
| Enkelprecisie | Dubbele precisie | Typisch gebruik |
|---|---|---|
FVector2 | Vector2 | UV-coördinaten opgeslagen in vertex-elementen |
FVector3 | Vector3 | Normalen, tangenten opgeslagen in vertex-elementen |
FVector4 | Vector4 | Example VertexElementFVector.data items; ook controlepuntconversie |
Wanneer je vertex-elementgegevens instelt, kun je een precisieklasse doorgeven. set_data() converteert Vector2/Vector3 waarden naar FVector4 automatisch.