Class Transform
แพคเกจ: @aspose/3d (v24.12.0)
Transform เก็บตำแหน่งท้องถิ่น, การหมุน, และสเกลของ Node ในพื้นที่อ็อบเจ็กต์. มันให้การเข้าถึงคุณสมบัติโดยตรง (translation, scaling, rotation) และเมธอดตั้งค่าแบบ fluent (setTranslation, setScale, setEulerAngles, setRotation) ตัวตั้งค่าทั้งหมดทำให้แคชเมทริกซ์ภายในไม่ถูกต้อง; เมทริกซ์ที่คำนวณใหม่พร้อมใช้งานผ่าน transformMatrix.
export class Transform extends A3DObjectTransform
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
Transform | Transform | Transform | Transform |
|---|---|---|---|
translation | Vector3 | (0, 0, 0) | ตำแหน่งท้องถิ่นของโหนดในระบบพิกัดของพาเรนท์. |
scaling | Vector3 | (1, 1, 1) | ปัจจัยสเกลท้องถิ่นตามแต่ละแกน. หมายเหตุ: คุณสมบัตินี้คือ scaling, ไม่ใช่ scale. |
rotation | Quaternion | อัตลักษณ์ | การหมุนในระดับท้องถิ่นเป็นควอเทอร์เนียนหน่วย การตั้งค่านี้จะอัปเดตด้วย eulerAngles. |
eulerAngles | Vector3 | (0, 0, 0) | การหมุนในระดับท้องถิ่นที่แสดงเป็นมุมออยเลอร์ในหน่วยเรเดียน (พิตช์, ยอว์, โรล) การตั้งค่านี้จะอัปเดตด้วย rotation. |
transformMatrix | Matrix4 | อัตลักษณ์ | เมทริกซ์การแปลงจากท้องถิ่นไปยังพาเรนท์ทั้งหมด คำนวณแบบ lazy จากคุณสมบัติ TRS; สามารถตั้งค่าโดยตรงเพื่อแยกเป็นส่วนประกอบ TRS ได้. |
preRotation | Vector3 | (0, 0, 0) | การหมุนออยเลอร์ที่ใช้ก่อนการหมุนหลัก (ใช้โดย rig ของ FBX). |
postRotation | Vector3 | (0, 0, 0) | การหมุนออยเลอร์ที่ใช้หลังการหมุนหลัก (ใช้โดย rig ของ FBX). |
scalingOffset | Vector3 | (0, 0, 0) | การเลื่อนตำแหน่งการแปลที่ใช้ก่อนจุดหมุนสเกล (เข้ากันได้กับ FBX). |
scalingPivot | Vector3 | (0, 0, 0) | จุดศูนย์กลางที่ใช้สำหรับการสเกล. |
rotationOffset | Vector3 | (0, 0, 0) | การเลื่อนตำแหน่งการแปลที่ใช้ก่อนจุดศูนย์หมุน. |
rotationPivot | Vector3 | (0, 0, 0) | จุดศูนย์กลางที่การหมุนถูกนำไปใช้. |
geometricTranslation | Vector3 | (0, 0, 0) | การแปลเชิงเรขาคณิตที่ใช้หลังจากการแปลงโหนด (ส่งผลต่อเรขาคณิต ไม่ส่งผลต่อลูก). |
geometricScaling | Vector3 | (1, 1, 1) | การสเกลเชิงเรขาคณิตที่ใช้หลังจากการแปลงโหนด (ส่งผลต่อเรขาคณิต ไม่ส่งผลต่อลูก). |
geometricRotation | Vector3 | (0, 0, 0) | การหมุนเชิงเรขาคณิตที่ใช้หลังจากการแปลงโหนด (ส่งผลต่อเรขาคณิต ไม่ส่งผลต่อลูก). |
Transform
setTranslation(tx, ty, tz)
ตั้งค่าการแปลตำแหน่งท้องถิ่นและคืนค่า this เพื่อการเชื่อมต่อเมธอด.
setTranslation(tx: number, ty: number, tz: number): TransformTransform
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): TransformTransform
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): TransformTransform
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): TransformTransform
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): TransformTransform
Transform
setPostRotation(rx, ry, rz)
ตั้งค่ามุมออยเลอร์ของการหมุนภายหลังในหน่วยเรเดียนและคืนค่า this.
setPostRotation(rx: number, ry: number, rz: number): TransformTransform
Transform
setGeometricTranslation(x, y, z)
ตั้งค่าการเยื้องการแปลเชิงเรขาคณิต (มีผลต่อเรขาคณิตของโหนดนี้แต่ไม่ส่งผลต่อโหนดลูก) และคืนค่า this.
setGeometricTranslation(x: number, y: number, z: number): TransformTransform
Transform
setGeometricScaling(sx, sy, sz)
ตั้งค่าการเยื้องการสเกลเชิงเรขาคณิตและคืนค่า this.
setGeometricScaling(sx: number, sy: number, sz: number): TransformTransform
Transform
setGeometricRotation(rx, ry, rz)
ตั้งค่าการเยื้องการหมุนเชิงเรขาคณิต (มุมออยเลอร์ในหน่วยเรเดียน) และคืนค่า this.
setGeometricRotation(rx: number, ry: number, rz: number): TransformTransform
Transform