# [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]