Class Transform
الحزمة: @aspose/3d (v24.12.0)
التحويل يحتفظ بالموقع المحلي، والدوران، والقياس لـ Node في فضاء الكائن. يوفر كلًا من الوصول المباشر إلى الخاصية (translation, scaling, rotation) وطرق تعيين متسلسلة (setTranslation, setScale, setEulerAngles, setRotation). جميع المُعيّنات تُلغي ذاكرة التخزين المؤقت للمصفوفة الداخلية؛ المصفوفة المعاد حسابها متاحة عبر transformMatrix.
export class Transform extends A3DObjectTransform
A3DObject ← Transform
Transform
حدد الموقع، وقم بالدوران، وقم بالتحجيم لعقدة باستخدام واجهة برمجة التطبيقات المتسلسلة.
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 | هوية | المصفوفة الكاملة للتحويل من المحلي إلى الأصل. تُحسب عند الحاجة من خصائص TRS؛ يمكن أيضًا تعيينها مباشرةً لتفكيكها إلى مكونات TRS. |
preRotation | Vector3 | (0, 0, 0) | دوران أويلر يُطبق قبل الدوران الرئيسي (يُستخدم في هياكل FBX). |
postRotation | Vector3 | (0, 0, 0) | دوران أويلر يُطبق بعد الدوران الرئيسي (يُستخدم في هياكل 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 — Yaw (الدوران حول المحور Y) بالراديان.
rz number — Roll (الدوران حول المحور 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