Class Transform

แพคเกจ: @aspose/3d (v24.12.0)

Transform เก็บตำแหน่งท้องถิ่น, การหมุน, และสเกลของ Node ในพื้นที่อ็อบเจ็กต์. มันให้การเข้าถึงคุณสมบัติโดยตรง (translation, scaling, rotation) และเมธอดตั้งค่าแบบ fluent (setTranslation, setScale, setEulerAngles, setRotation) ตัวตั้งค่าทั้งหมดทำให้แคชเมทริกซ์ภายในไม่ถูกต้อง; เมทริกซ์ที่คำนวณใหม่พร้อมใช้งานผ่าน transformMatrix.

export class Transform extends A3DObject

Transform

A3DObject ← Transform

Transform

กำหนดตำแหน่ง, หมุน, และสเกล node ด้วย API แบบ 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)ตำแหน่งท้องถิ่นของโหนดในระบบพิกัดของพาเรนท์.
scalingVector3(1, 1, 1)ปัจจัยสเกลท้องถิ่นตามแต่ละแกน. หมายเหตุ: คุณสมบัตินี้คือ scaling, ไม่ใช่ scale.
rotationQuaternionอัตลักษณ์การหมุนในระดับท้องถิ่นเป็นควอเทอร์เนียนหน่วย การตั้งค่านี้จะอัปเดตด้วย eulerAngles.
eulerAnglesVector3(0, 0, 0)การหมุนในระดับท้องถิ่นที่แสดงเป็นมุมออยเลอร์ในหน่วยเรเดียน (พิตช์, ยอว์, โรล) การตั้งค่านี้จะอัปเดตด้วย rotation.
transformMatrixMatrix4อัตลักษณ์เมทริกซ์การแปลงจากท้องถิ่นไปยังพาเรนท์ทั้งหมด คำนวณแบบ lazy จากคุณสมบัติ TRS; สามารถตั้งค่าโดยตรงเพื่อแยกเป็นส่วนประกอบ TRS ได้.
preRotationVector3(0, 0, 0)การหมุนออยเลอร์ที่ใช้ก่อนการหมุนหลัก (ใช้โดย rig ของ FBX).
postRotationVector3(0, 0, 0)การหมุนออยเลอร์ที่ใช้หลังการหมุนหลัก (ใช้โดย rig ของ 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

 ภาษาไทย