Class Transform

Class Transform

包:: @aspose/3d (v24.12.0)

Transform 保存对象在本地空间中的位置、旋转和缩放 Node 在对象空间中。它同时提供直接属性访问(translation, scaling, rotation)和流式设置方法(setTranslation, setScale, setEulerAngles, setRotation)所有设置器会使内部矩阵缓存失效;重新计算的矩阵可通过 transformMatrix.

export class Transform extends A3DObject

Transform

A3DObject ← Transform

Transform

使用流式 API 对节点进行位置、旋转和缩放。.

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)节点在其父节点坐标空间中的本地位置。.
scalingVector3(1, 1, 1)沿每个轴的局部缩放因子。注意:该属性是 scaling,,而不是 scale.
rotationQuaternionidentity局部旋转,以单位四元数表示。设置此项也会更新 eulerAngles.
eulerAnglesVector3(0, 0, 0)局部旋转以弧度制欧拉角表示(俯仰、偏航、滚动)。设置此项也会更新 rotation.
transformMatrixMatrix4identity完整的局部到父级的变换矩阵。该矩阵从 TRS 属性惰性计算;也可以直接设置以分解为 TRS 组件。.
preRotationVector3(0, 0, 0)在主旋转之前应用的欧拉旋转(FBX 骨架使用)。.
postRotationVector3(0, 0, 0)在主旋转之后应用的欧拉旋转(FBX 骨架使用)。.
scalingOffsetVector3(0, 0, 0)在缩放枢轴之前应用的平移偏移(兼容 FBX)。.
scalingPivotVector3(0, 0, 0)应用缩放的枢轴点。.
rotationOffsetVector3(0, 0, 0)在旋转枢轴之前应用的平移偏移。.
rotationPivotVector3(0, 0, 0)应用旋转的枢轴点。.
geometricTranslationVector3(0, 0, 0)在节点变换之后应用的几何平移(影响几何体,不影响子节点)。.
geometricScalingVector3(1, 1, 1)在节点变换之后应用的几何缩放(影响几何体,不影响子节点)。.
geometricRotationVector3(0, 0, 0)在节点变换之后应用的几何旋转(影响几何体,不影响子节点)。.

Transform

setTranslation(tx, ty, tz)

设置本地平移并返回 this 用于方法链式调用。.

setTranslation(tx: number, ty: number, tz: number): Transform

Transform

tx number — 平移的 X 分量。.

ty number — 平移的 Y 分量。.

tz number — 平移的 Z 分量。.

Transform

Transform — 同上 Transform 实例以便链式调用。.

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)

设置本地缩放并返回 this 用于方法链式调用。.

setScale(sx: number, sy: number, sz: number): Transform

Transform

sx number — X 方向的缩放因子。.

sy number — Y 方向的缩放因子。.

sz number — Z 方向的缩放因子。.

Transform

Transform — 同样的 Transform 实例用于链式调用。.

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)

通过欧拉角(弧度)设置旋转并返回 this. 该 rotation 四元数会自动更新。.

setEulerAngles(rx: number, ry: number, rz: number): Transform

Transform

rx number — 俯仰(围绕 X 轴的旋转),单位为弧度。.

ry number — 偏航(围绕 Y 轴的旋转),单位为弧度。.

rz number — 绕 Z 轴的滚转(以弧度为单位)。.

Transform

Transform — 同上 Transform 实例用于链式调用。.

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)

从四元数分量设置旋转并返回 this. 该 eulerAngles 属性会自动更新。.

setRotation(rw: number, rx: number, ry: number, rz: number): Transform

Transform

rw number — 四元数的标量 (w) 分量。.

rx number — 四元数的 X 分量。.

ry number — 四元数的 Y 分量。.

rz number — 四元数的 Z 分量。.

Transform

Transform — 相同的 Transform 用于链式调用的实例。.


setPreRotation(rx, ry, rz)

设置预旋转欧拉角(单位为弧度),并返回 this.

setPreRotation(rx: number, ry: number, rz: number): Transform

Transform

Transform


setPostRotation(rx, ry, rz)

设置后旋转欧拉角(单位为弧度),并返回 this.

setPostRotation(rx: number, ry: number, rz: number): Transform

Transform

Transform


setGeometricTranslation(x, y, z)

设置几何平移偏移(影响此节点的几何体,但不影响其子节点),并返回 this.

setGeometricTranslation(x: number, y: number, z: number): Transform

Transform

Transform


setGeometricScaling(sx, sy, sz)

设置几何缩放偏移,并返回 this.

setGeometricScaling(sx: number, sy: number, sz: number): Transform

Transform

Transform


setGeometricRotation(rx, ry, rz)

设置几何旋转偏移(欧拉角,以弧度为单位),并返回 this.

setGeometricRotation(rx: number, ry: number, rz: number): Transform

Transform

Transform

 中文