[name]

فئة تمثل 3x3 [link:https://en.wikipedia.org/wiki/Matrix_(mathematics) مصفوفة].

مثال الكود

const m = new Matrix3();

ملاحظة حول الترتيب الرئيسي للصف والعمود الرئيسي

يأخذ المنشئ وطريقة [page:set]() الوسائط في [link:https://en.wikipedia.org/wiki/Row-_and_column-major_order#Column-major_order ترتيب الصف الرئيسي] ، في حين أنها مخزنة داخليًا في مصفوفة [page:.elements elements] بترتيب العمود الرئيسي.

هذا يعني أن استدعاء m.set( 11, 12, 13, 21, 22, 23, 31, 32, 33 ); ستؤدي إلى مصفوفة [page:.elements elements] التي تحتوي على: m.elements = [ 11, 21, 31, 12, 22, 32, 13, 23, 33 ]; وداخليًا يتم تنفيذ جميع الحسابات باستخدام ترتيب العمود الرئيسي. ومع ذلك ، نظرًا لأن الترتيب الفعلي لا يحدث فرقًا رياضيًا و معظم الناس معتادون على التفكير في المصفوفات بترتيب الصف الرئيسي ، فإن وثائق three.js تظهر المصفوفات بترتيب الصف الرئيسي. فقط تحمل في اذهانك أنه إذا كنت تقرأ التعليمات البرمجية المصدرية ، فستضطر إلى أخذ [link:https://en.wikipedia.org/wiki/Transpose عكس] لأية مصفوفات الموضحة هنا لجعل المحاسبات منطقية.

المنشئ (Constructor)

[name]( [param:Number n11], [param:Number n12], [param:Number n13], [param:Number n21], [param:Number n22], [param:Number n23], [param:Number n31], [param:Number n32], [param:Number n33] )

ينشئ مصفوفة 3x3 بالوسائط المعطاة بترتيب الصف الرئيسي. إذا لم يتم توفير أية وسائط ، يقوم المنشئ بتهيئة [name] إلى مصفوفة هوية 3x3 [link:https://en.wikipedia.org/wiki/Identity_matrix].

الخصائص (Properties)

[property:Array elements]

قائمة [link:https://en.wikipedia.org/wiki/Row-_and_column-major_order بالعمود الرئيسي] من قيم المصفوفة.

الطرق (Methods)

[method:Matrix3 clone]()

ينشئ Matrix3 جديدًا وبعناصر متطابقة مع هذا.

[method:this copy]( [param:Matrix3 m] )

ينسخ عناصر المصفوفة [page:Matrix3 m] في هذه المصفوفة.

[method:Float determinant]()

يحسب ويعيد [link:https://en.wikipedia.org/wiki/Determinant المحدد] لهذه المصفوفة.

[method:Boolean equals]( [param:Matrix3 m] )

يرجع صحيحًا إذا كانت هذه المصفوفة و [page:Matrix3 m] متساويتين.

[method:this extractBasis]( [param:Vector3 xAxis], [param:Vector3 yAxis], [param:Vector3 zAxis] )

يستخرج [link:https://en.wikipedia.org/wiki/Basis_(linear_algebra) الأساس] لهذه المصفوفة في ثلاثة متجهات محورية مقدمة. إذا كانت هذه المصفوفة هي:

[ a b c d e f g h i ]

ثم سيتم تعيين [page:Vector3 xAxis] ، [page:Vector3 yAxis] ، [page:Vector3 zAxis] إلى:

xAxis = [ a d g ] , yAxis = [ b e h ] , and zAxis = [ c f i ]

[method:this fromArray]( [param:Array array], [param:Integer offset] )

[page:Array array] - المصفوفة التي يتم قراءة العناصر منها.
[page:Integer offset] - (اختياري) فهرس العنصر الأول في المصفوفة. الافتراضي هو 0.

يضع عناصر هذه المصفوفة بناءً على مصفوفة في [link:https://en.wikipedia.org/wiki/Row-_and_column-major_order#Column-major_order تنسيق العمود الرئيسي].

[method:this invert]()

يعكس هذه المصفوفة ، باستخدام [link:https://en.wikipedia.org/wiki/Invertible_matrix#Analytic_solution الطريقة التحليلية]. لا يمكنك العكس مع محدد صفر. إذا قمت بمحاولة هذا ، فإن الطريقة تنتج مصفوفة صفرية بدلاً من ذلك.

[method:this getNormalMatrix]( [param:Matrix4 m] )

[page:Matrix4 m] - [page:Matrix4]

يضع هذه المصفوفة كـ 3x3 العلوي الأيسر من [link:https://en.wikipedia.org/wiki/Normal_matrix المصفوفة الطبيعية] لل مرور [page:Matrix4 matrix4]. المصفوفة الطبيعية هي [link:https://en.wikipedia.org/wiki/Invertible_matrix العكس] [link:https://en.wikipedia.org/wiki/Transpose عكس] للمصفوفة [page:Matrix4 m].

[method:this identity]()

يعيد هذه المصفوفة إلى مصفوفة الهوية 3x3:

[ 1 0 0 0 1 0 0 0 1 ]

[method:this makeRotation]( [param:Float theta] )

[page:Float theta] - زاوية الدوران بالراديان. تدور القيم الموجبة عكس عقارب الساعة.

يضع هذه المصفوفة كتحول دوران ثنائي الأبعاد بـ [page:Float theta] راديان. المصفوفة الناتجة ستكون:

[ cos θ -sin θ 0 sin θ cos θ 0 0 0 1 ]

[method:this makeScale]( [param:Float x], [param:Float y] )

[page:Float x] - المبلغ الذي يتم قياسه في المحور X.
[page:Float y] - المبلغ الذي يتم قياسه في المحور Y.
يضع هذه المصفوفة كتحول قياس ثنائي الأبعاد:

[ x 0 0 0 y 0 0 0 1 ]

[method:this makeTranslation]( [param:Vector2 v] )

[method:this makeTranslation]( [param:Float x], [param:Float y] )

[page:Vector2 v] تحويل الترجمة من المتجه.
أو
[page:Float x] - المبلغ الذي يتم ترجمته في المحور X.
[page:Float y] - المبلغ الذي يتم ترجمته في المحور Y.
يضع هذه المصفوفة كتحويل ترجمة ثنائي الأبعاد:

[ 1 0 x 0 1 y 0 0 1 ]

[method:this multiply]( [param:Matrix3 m] )

يضرب هذه المصفوفة بعد [page:Matrix3 m].

[method:this multiplyMatrices]( [param:Matrix3 a], [param:Matrix3 b] )

يضع هذه المصفوفة على [page:Matrix3 a] x [page:Matrix3 b].

[method:this multiplyScalar]( [param:Float s] )

يضرب كل مكون من مكونات المصفوفة بالقيمة العددية *s*.

[method:this rotate]( [param:Float theta] )

يدور هذه المصفوفة بالزاوية المعطاة (بالراديان).

[method:this scale]( [param:Float sx], [param:Float sy] )

يقيس هذه المصفوفة بالقيم العددية المعطاة.

[method:this set]( [param:Float n11], [param:Float n12], [param:Float n13], [param:Float n21], [param:Float n22], [param:Float n23], [param:Float n31], [param:Float n32], [param:Float n33] )

يضع قيم المصفوفة 3x3 على [link:https://en.wikipedia.org/wiki/Row-_and_column-major_order تسلسل قيم رئيسية للصف]:

[ n11 n12 n13 n21 n22 n23 n31 n32 n33 ]

[method:this premultiply]( [param:Matrix3 m] )

Pre-multiplies this matrix by [page:Matrix3 m].

[method:this setFromMatrix4]( [param:Matrix4 m] )

قم بتعيين هذه المصفوفة إلى مصفوفة 3x3 العلوية من Matrix4 [page:Matrix4 m].

[method:this setUvTransform]( [param:Float tx], [param:Float ty], [param:Float sx], [param:Float sy], [param:Float rotation], [param:Float cx], [param:Float cy] )

[page:Float tx] - الإزاحة x
[page:Float ty] - الإزاحة y
[page:Float sx] - تكرار x
[page:Float sy] - تكرار y
[page:Float rotation] - الدوران ، بالراديان. تدور القيم الموجبة عكس عقارب الساعة
[page:Float cx] - مركز x للدوران
[page:Float cy] - مركز y للدوران

يضع مصفوفة التحويل UV من الإزاحة والتكرار والدوران والمركز.

[method:Array toArray]( [param:Array array], [param:Integer offset] )

[page:Array array] - (اختياري) مصفوفة لتخزين المتجه الناتج فيها. إذا لم يتم إعطاء مصفوفة جديدة سيتم إنشاؤها.
[page:Integer offset] - (اختياري) إزاحة في المصفوفة التي يجب وضعها فيها النتيجة.

يكتب عناصر هذه المصفوفة في مصفوفة في [link:https://en.wikipedia.org/wiki/Row-_and_column-major_order#Column-major_order تنسيق العمود الرئيسي].

[method:this translate]( [param:Float tx], [param:Float ty] )

يترجم هذه المصفوفة بالقيم العددية المعطاة.

[method:this transpose]()

[link:https://en.wikipedia.org/wiki/Transpose يعكس] هذه المصفوفة في مكان.

[method:this transposeIntoArray]( [param:Array array] )

[page:Array array] - مصفوفة لتخزين المتجه الناتج فيها.

[link:https://en.wikipedia.org/wiki/Transpose يعكس] هذه المصفوفة في المصفوفة الموردة ، ويرجع نفسه دون تغيير.

المصدر (Source)

[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]