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 A3DObject

Transform

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

TransformTransformTransformTransform
translationVector3(0, 0, 0)Vị trí cục bộ của nút trong không gian tọa độ của cha nó.
scalingVector3(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.
rotationQuaternionidentityQuay cục bộ dưới dạng quaternion đơn vị. Đặt giá trị này cũng sẽ cập nhật eulerAngles.
eulerAnglesVector3(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.
transformMatrixMatrix4identityMa 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.
preRotationVector3(0, 0, 0)Quay Euler được áp dụng trước quay chính (được sử dụng bởi các rig FBX).
postRotationVector3(0, 0, 0)Quay Euler được áp dụng sau phép quay chính (được sử dụng bởi FBX rigs).
scalingOffsetVector3(0, 0, 0)Độ dịch chuyển được áp dụng trước điểm neo tỷ lệ (FBX-compatible).
scalingPivotVector3(0, 0, 0)Điểm neo mà tại đó tỷ lệ được áp dụng.
rotationOffsetVector3(0, 0, 0)Độ dịch chuyển được áp dụng trước điểm neo quay.
rotationPivotVector3(0, 0, 0)Điểm quay quanh đó phép quay được áp dụng.
geometricTranslationVector3(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).
geometricScalingVector3(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).
geometricRotationVector3(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): Transform

Transform

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): Transform

Transform

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): Transform

Transform

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): Transform

Transform

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): Transform

Transform

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): Transform

Transform

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): Transform

Transform

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): Transform

Transform

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): Transform

Transform

Transform

 Tiếng Việt