Class Transform
Gói: @aspose/3d (v24.12.0)
Transform giữ vị trí cục bộ, quay và tỉ lệ của một Node trong không gian đối tượng. Nó cung cấp cả truy cập thuộc tính trực tiếp (translation, scaling, rotation) và các phương thức setter dạng fluent (setTranslation, setScale, setEulerAngles, setRotation). Tất cả các setter làm mất hiệu lực bộ nhớ đệm ma trận nội bộ; ma trận được tính lại có sẵn qua transformMatrix.
export class Transform extends A3DObjectTransform
A3DObject ← Transform
Transform
Định vị, quay và thay đổi tỉ lệ cho một node bằng API dạng fluent.
import { Scene, Node, Mesh } from '@aspose/3d';
import { Vector3, Quaternion } from '@aspose/3d/utilities';
const scene = new Scene();
const node = scene.rootNode.createChildNode('box');
// Fluent chain: translate, scale, then rotate 45° around Y
node.transform
.setTranslation(0, 1, 0)
.setScale(2, 2, 2)
.setEulerAngles(0, Math.PI / 4, 0);
console.log(`Translation: ${node.transform.translation}`);
// Translation: Vector3(0, 1, 0)
Transform
Transform | Transform | Transform | Transform |
|---|---|---|---|
translation | Vector3 | (0, 0, 0) | Vị trí cục bộ của nút trong không gian tọa độ của cha nó. |
scaling | Vector3 | (1, 1, 1) | Hệ số tỉ lệ cục bộ dọc theo mỗi trục. Lưu ý: thuộc tính này là scaling, không phải scale. |
rotation | Quaternion | identity | Quay cục bộ dưới dạng quaternion đơn vị. Đặt giá trị này cũng sẽ cập nhật eulerAngles. |
eulerAngles | Vector3 | (0, 0, 0) | Quay cục bộ được biểu diễn dưới dạng góc Euler tính bằng radian (pitch, yaw, roll). Đặt giá trị này cũng sẽ cập nhật rotation. |
transformMatrix | Matrix4 | identity | Ma trận chuyển đổi đầy đủ từ cục bộ tới cha. Được tính một cách lười biếng từ các thuộc tính TRS; cũng có thể được đặt trực tiếp để phân tách thành các thành phần TRS. |
preRotation | Vector3 | (0, 0, 0) | Quay Euler được áp dụng trước quay chính (được sử dụng bởi các rig FBX). |
postRotation | Vector3 | (0, 0, 0) | Quay Euler được áp dụng sau phép quay chính (được sử dụng bởi FBX rigs). |
scalingOffset | Vector3 | (0, 0, 0) | Độ dịch chuyển được áp dụng trước điểm neo tỷ lệ (FBX-compatible). |
scalingPivot | Vector3 | (0, 0, 0) | Điểm neo mà tại đó tỷ lệ được áp dụng. |
rotationOffset | Vector3 | (0, 0, 0) | Độ dịch chuyển được áp dụng trước điểm neo quay. |
rotationPivot | Vector3 | (0, 0, 0) | Điểm quay quanh đó phép quay được áp dụng. |
geometricTranslation | Vector3 | (0, 0, 0) | Dịch chuyển hình học được áp dụng sau khi biến đổi nút (ảnh hưởng đến hình học, không ảnh hưởng đến các nút con). |
geometricScaling | Vector3 | (1, 1, 1) | Tỷ lệ hình học được áp dụng sau khi biến đổi nút (ảnh hưởng đến hình học, không ảnh hưởng đến các nút con). |
geometricRotation | Vector3 | (0, 0, 0) | Quay hình học được áp dụng sau khi biến đổi nút (ảnh hưởng đến hình học, không ảnh hưởng đến các nút con). |
Transform
setTranslation(tx, ty, tz)
Đặt dịch chuyển cục bộ và trả về this để nối chuỗi phương thức.
setTranslation(tx: number, ty: number, tz: number): TransformTransform
tx number — Thành phần X của dịch chuyển.
ty number — Thành phần Y của dịch chuyển.
tz number — Thành phần Z của dịch chuyển.
Transform
Transform — Tương tự Transform đối tượng để nối chuỗi.
Transform
import { Scene } from '@aspose/3d';
const scene = new Scene();
const node = scene.rootNode.createChildNode('pivot');
node.transform.setTranslation(10, 0, -5);
console.log(`X: ${node.transform.translation.x}`); // X: 10
setScale(sx, sy, sz)
Đặt tỷ lệ cục bộ và trả về this để nối chuỗi phương thức.
setScale(sx: number, sy: number, sz: number): TransformTransform
sx number — Hệ số tỷ lệ dọc theo X.
sy number — Hệ số tỷ lệ dọc theo Y.
sz number — Hệ số tỉ lệ dọc theo trục Z.
Transform
Transform — Tương tự Transform đối tượng để chuỗi lệnh.
Transform
import { Scene } from '@aspose/3d';
const scene = new Scene();
const node = scene.rootNode.createChildNode('big');
node.transform.setScale(3, 3, 3);
console.log(`Scale X: ${node.transform.scaling.x}`); // Scale X: 3
setEulerAngles(rx, ry, rz)
Đặt góc quay bằng các góc Euler tính bằng radian và trả về this. Thuộc tính rotation quaternion được cập nhật tự động.
setEulerAngles(rx: number, ry: number, rz: number): TransformTransform
rx number — Pitch (góc quay quanh trục X) tính bằng radian.
ry number — Yaw (góc quay quanh trục Y) tính bằng radian.
rz number — Roll (góc quay quanh trục Z) tính bằng radian.
Transform
Transform — Tương tự Transform đối tượng để chuỗi lệnh.
Transform
import { Scene } from '@aspose/3d';
const scene = new Scene();
const node = scene.rootNode.createChildNode('rotated');
// Rotate 90° around Y axis
node.transform.setEulerAngles(0, Math.PI / 2, 0);
console.log(`Euler Y: ${node.transform.eulerAngles.y.toFixed(4)}`);
// Euler Y: 1.5708
setRotation(rw, rx, ry, rz)
Đặt góc quay từ các thành phần quaternion và trả về this. Thuộc tính eulerAngles thuộc tính được cập nhật tự động.
setRotation(rw: number, rx: number, ry: number, rz: number): TransformTransform
rw number — Thành phần vô hướng (w) của quaternion.
rx number — Thành phần X của quaternion.
ry number — Thành phần Y của quaternion.
rz number — Thành phần Z của quaternion.
Transform
Transform — Tương tự Transform đối tượng để nối chuỗi.
setPreRotation(rx, ry, rz)
Đặt các góc Euler tiền quay tính bằng radian và trả về this.
setPreRotation(rx: number, ry: number, rz: number): TransformTransform
Transform
setPostRotation(rx, ry, rz)
Đặt các góc Euler hậu quay tính bằng radian và trả về this.
setPostRotation(rx: number, ry: number, rz: number): TransformTransform
Transform
setGeometricTranslation(x, y, z)
Đặt độ dịch chuyển hình học (ảnh hưởng đến hình học của nút này nhưng không ảnh hưởng đến các nút con) và trả về this.
setGeometricTranslation(x: number, y: number, z: number): TransformTransform
Transform
setGeometricScaling(sx, sy, sz)
Đặt độ lệch tỷ lệ hình học và trả về this.
setGeometricScaling(sx: number, sy: number, sz: number): TransformTransform
Transform
setGeometricRotation(rx, ry, rz)
Đặt độ lệch quay hình học (các góc Euler tính bằng radian) và trả về this.
setGeometricRotation(rx: number, ry: number, rz: number): TransformTransform
Transform