Pārlūkot izejas kodu

Docs: Translating math section into Arabic (ar). (#26230)

* update list.json to include the math section of arabic docs

* add arabic translation for Box2 page

* add arabic translation for Box3 page

* add arabic translation for Color page

* add arabic translation for Cylindrical page

* add arabic translation for Euler page

* add arabic translation for Frustum page

* add arabic translation for Interpolant page

* add arabic translation for Line3 page

* add arabic translation for MathUtils page

* add arabic translation for Matrix3 page

* add arabic translation for Matrix4 page

* add arabic translation for Plane page

* add arabic translation for Quaternion page

* add arabic translation for Ray page

* add arabic translation for Sphere page

* add arabic translation for Spherical page

* add arabic translation for SphericalHarmonics3 page

* add arabic translation for Triangle page

* add arabic translation for Vector2 page

* add arabic translation for Vector3 page

* add arabic translation for Vector4 page
Omar Khalifa 2 gadi atpakaļ
vecāks
revīzija
ed2bfb2e56

+ 203 - 0
docs/api/ar/math/Box2.html

@@ -0,0 +1,203 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		<h1>[name]</h1>
+
+		<p class="desc">
+			يمثل مربعًا محدودًا بمحاور (AABB) في الفضاء ثنائي الأبعاد.
+		</p>
+			
+		<h2>المنشئ (Constructor)</h2>
+			
+		<h3>[name]( [param:Vector2 min], [param:Vector2 max] )</h3>
+		<p>
+		[page:Vector2 min] - (اختياري) [page:Vector2] يمثل الحد السفلي (x، y) للمربع. الافتراضي هو (+ Infinity، + Infinity).<br />
+			
+		[page:Vector2 max] - (اختياري) [page:Vector2] يمثل الحد العلوي (x، y) للمربع. الافتراضي هو (- Infinity، - Infinity).<br /><br />
+			
+		ينشئ [name] محدودًا بواسطة min و max.
+		</p>
+			
+		<h2>الخصائص (Properties)</h2>
+			
+		<h3>[property:Vector2 min]</h3>
+		<p>
+		[page:Vector2] يمثل الحد السفلي (x، y) للمربع.<br />
+		الافتراضي هو (+ Infinity، + Infinity).
+		</p>
+			
+		<h3>[property:Vector2 max]</h3>
+		<p>
+		[page:Vector2] يمثل الحد العلوي (x، y) للمربع.<br />
+		الافتراضي هو (- Infinity، - Infinity).
+		</p>
+			
+		<h2>الطرق (Methods)</h2>
+			
+		<h3>
+		[method:Vector2 clampPoint]( [param:Vector2 point], [param:Vector2 target] )
+		</h3>
+		<p>
+		[page:Vector2 point] - [page:Vector2] للتثبيت. <br />
+		[page:Vector2 target] — سيتم نسخ النتيجة في هذا Vector2.<br /><br />
+			
+		[link:https://en.wikipedia.org/wiki/Clamping_(graphics) يثبت] [page:Vector2 point] داخل حدود هذا المربع.<br />
+		</p>
+			
+		<h3>[method:Box2 clone]()</h3>
+		<p>
+		يعود بـ [page:Box2] جديد مع نفس [page:.min min] و [page:.max max] كهذا المربع.
+		</p>
+			
+		<h3>[method:Boolean containsBox]( [param:Box2 box] )</h3>
+		<p>
+		[page:Box2 box] - [page:Box2 Box2] للاختبار للتضمين.<br /><br />
+			
+		يعود بـ true إذا كان هذا المربع يشمل كامل [page:Box2 box]. إذا كان هذا و [page:Box2 box] متطابقان، <br />
+		فإن هذه الوظيفة تعود أيضًا بـ true.
+		</p>
+			
+		<h3>[method:Boolean containsPoint]( [param:Vector2 point] )</h3>
+		<p>
+		[page:Vector2 point] - [page:Vector2] للاختبار للتضمين.<br /><br />
+			
+		يعود بـ true إذا كانت [page:Vector2 point] المحددة تقع داخل أو على حدود هذا المربع.
+		</p>
+
+		<h3>[method:this copy]( [param:Box2 box] )</h3>
+		<p>
+		ينسخ [page:.min min] و [page:.max max] من [page:Box2 box] إلى هذا المربع.
+		</p>
+		
+		<h3>[method:Float distanceToPoint]( [param:Vector2 point] )</h3>
+		<p>
+		[page:Vector2 point] - [page:Vector2] لقياس المسافة إليها.<br /><br />
+		
+		يعود بالمسافة من أي حافة لهذا المربع إلى النقطة المحددة. إذا كانت [page:Vector2 point] داخل هذا المربع، فستكون المسافة 0.
+		</p>
+		
+		<h3>[method:Boolean equals]( [param:Box2 box] )</h3>
+		<p>
+		[page:Box2 box] - مربع للمقارنة مع هذا المربع.<br /><br />
+		
+		يعود بـ true إذا كان هذا المربع و [page:Box2 box] يشتركان في نفس الحدود السفلى والعليا.
+		</p>
+		
+		<h3>[method:this expandByPoint]( [param:Vector2 point] )</h3>
+		<p>
+		[page:Vector2 point] - [page:Vector2] التي يجب تضمينها في المربع.<br /><br />
+		
+		يوسع حدود هذا المربع لتضمين [page:Vector2 point].
+		</p>
+		
+		<h3>[method:this expandByScalar]( [param:Float scalar] )</h3>
+		<p>
+		[page:Float scalar] - المسافة التي يتم توسيع المربع بها.<br /><br />
+		
+		يوسع كل بُعد من أبعاد المربع بواسطة [page:Float scalar]. إذا كانت سالبة، فستتقلص أبعاد المربع.
+		</p>
+		
+		<h3>[method:this expandByVector]( [param:Vector2 vector] )</h3>
+		<p>
+		[page:Vector2 vector] - [page:Vector2] لتوسيع المربع بها.<br /><br />
+		
+		يوسع هذا المربع بشكل متساوٍ بواسطة [page:Vector2 vector]. سيتم توسيع عرض هذا المربع بمكون x من [page:Vector2 vector] في كلا الاتجاهين. ستتم توسيع ارتفاع هذا المربع بمكون y من [page:Vector2 vector] في كلا الاتجاهين.
+		</p>
+
+		<h3>[method:Vector2 getCenter] ([param:Vector2 target])</h3>
+		<p>
+		[page:Vector2 target] — سيتم نسخ النتيجة في هذا Vector2.<br /><br />
+		
+		يعود نقطة المركز للصندوق كـ [page:Vector2].
+		</p>
+		
+		<h3>[method:Vector2 getParameter] ([param:Vector2 point], [param:Vector2 target])</h3>
+		<p>
+		[page:Vector2 point] - [page:Vector2].<br />
+		[page:Vector2 target] — سيتم نسخ النتيجة في هذا Vector2.<br /><br />
+		
+		يعود نقطة كنسبة من عرض وارتفاع هذا الصندوق.
+		</p>
+		
+		<h3>[method:Vector2 getSize] ([param:Vector2 target])</h3>
+		<p>
+		[page:Vector2 target] — سيتم نسخ النتيجة في هذا Vector2.<br /><br />
+		
+		يعود عرض وارتفاع هذا الصندوق.
+		</p>
+		
+		<h3>[method:this intersect] ([param:Box2 box])</h3>
+		<p>
+		[page:Box2 box] - مربع للتقاطع معه.<br /><br />
+		
+		يعود تقاطع هذا و [page:Box2 box]، محددًا الحد الأعلى لهذا المربع إلى أقل من حدود المربعين الأعلى والحد الأدنى لهذا المربع إلى أكبر من حدود المربعين الأدنى.
+		</p>
+		
+		<h3>[method:Boolean intersectsBox] ([param:Box2 box])</h3>
+		<p>
+		[page:Box2 box] - مربع للتحقق من التقاطع ضده.<br /><br />
+		
+		يحدد ما إذا كان هذا المربع يتقاطع مع [page:Box2 box].
+		</p>
+		
+		<h3>[method:Boolean isEmpty]()</h3>
+		<p>
+		يُرجَع صوابًا إذا كان هذا المربع يشمل صفر نقط داخل حدوده.<br />
+		لاحظ أن المربع الذي يحتوي على حدود سفلى وعلوية متساوية لا يزال يشمل نقطة واحدة، وهي التي تشترك فيها كلا الحدود.
+		</p>
+		
+		<h3>[method:this makeEmpty]()</h3>
+		<p> يجعل هذا المربع فارغًا. </p>
+		
+
+		<h3>[method:this set]([param:Vector2 min], [param:Vector2 max])</h3>
+		<p>
+		[page:Vector2 min] - (مطلوب) [page:Vector2] يمثل الحد الأدنى (x، y) للمربع. <br />
+		[page:Vector2 max] - (مطلوب) [page:Vector2] يمثل الحد الأعلى (x، y) للمربع. <br /><br />
+		
+		يضع الحدود العليا والسفلى (x، y) لهذا المربع.<br />
+		يرجى ملاحظة أن هذه الطريقة تنسخ فقط القيم من الكائنات المعطاة.
+		</p>
+		
+		<h3>[method:this setFromCenterAndSize]([param:Vector2 center], [param:Vector2 size])</h3>
+		<p>
+		[page:Vector2 center] - الموضع المركزي المطلوب للمربع ([page:Vector2]). <br />
+		[page:Vector2 size] - أبعاد x و y المطلوبة للمربع ([page:Vector2]).<br /><br />
+		
+		يضع هذا المربع في مركز [page:Vector2 center] ويضع عرض وارتفاع هذا المربع إلى القيم المحددة في [page:Vector2 size].
+		</p>
+		
+		<h3>[method:this setFromPoints]([param:Array points])</h3>
+		<p>
+		[page:Array points] - مصفوفة من [page:Vector2 Vector2s] التي ستحتوي عليها المربعات الناتجة.<br /><br />
+		
+		يضع الحدود العليا والسفلى لهذا المربع لتشمل جميع النقاط في [page:Array points].
+		</p>
+		
+		<h3>[method:this translate]([param:Vector2 offset])</h3>
+		<p>
+		[page:Vector2 offset] - اتجاه ومسافة التحويل.<br /><br />
+		
+		يضيف [page:Vector2 offset] إلى كلاً من الحدود العليا والسفلى لهذا المربع، مما يؤدي بشكل فعال إلى نقل هذا المربع [page:Vector2 offset] وحدات في مسافة 2D.
+		</p>
+		
+		<h3>[method:this union]([param:Box2 box])</h3>
+		<p>
+		[page:Box2 box] - مربع سيتم دمجه مع هذا المربع.<br /><br />
+		
+		يجمع هذا المربع مع [page:Box2 box]، حيث يضع الحد الأقصى لهذا المربع على أكبر حدود علوية للمربعين والحد الأدنى لهذا المربع على أقل حدود سفلى للمربعين.
+		</p>
+
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 303 - 0
docs/api/ar/math/Box3.html

@@ -0,0 +1,303 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		<h1>[name]</h1>
+
+		<p class="desc">
+			يمثل مربعًا محدودًا بمحاور (AABB) في الفضاء ثلاثي الأبعاد.
+		</p>
+			
+		<h2>مثال الكود</h2>
+			
+		<code>
+		const box = new THREE.Box3();
+			
+		const mesh = new THREE.Mesh(
+			new THREE.SphereGeometry(),
+			new THREE.MeshBasicMaterial()
+		);
+			
+		// تأكد من حساب مربع التحديد لهندسته
+		// يجب القيام بذلك مرة واحدة فقط (باستخدام هندسات ثابتة)
+		mesh.geometry.computeBoundingBox();
+			
+		// ...
+			
+		// في حلقة الرسوم المتحركة، احسب المربع الحالي مع المصفوفة العالمية
+		box.copy( mesh.geometry.boundingBox ).applyMatrix4( mesh.matrixWorld );
+		</code>
+			
+		<h2>المنشئ (Constructor)</h2>
+			
+		<h3>[name]( [param:Vector3 min], [param:Vector3 max] )</h3>
+		<p>
+		[page:Vector3 min] - (اختياري) [page:Vector3] يمثل الحد السفلي (x، y، z) للمربع. الافتراضي هو (+ Infinity، + Infinity، + Infinity).<br />
+			
+		[page:Vector3 max] - (اختياري) [page:Vector3] يمثل الحد العلوي (x، y، z) للمربع. الافتراضي هو (- Infinity، - Infinity، - Infinity).<br /><br />
+			
+		ينشئ [name] محدودًا بواسطة min و max.
+		</p>
+			
+		<h2>الخصائص (Properties)</h2>
+			
+		<h3>[property:Boolean isBox3]</h3>
+		<p>علامة للقراءة فقط للتحقق مما إذا كان كائنًا معينًا من نوع [name].</p>
+			
+		<h3>[property:Vector3 min]</h3>
+		<p>
+		[page:Vector3] يمثل الحد السفلي (x، y، z) للمربع.<br />
+		الافتراضي هو (+ Infinity، + Infinity، + Infinity).
+		</p>
+			
+		<h3>[property:Vector3 max]</h3>
+		<p>
+		[page:Vector3] يمثل الحد العلوي (x، y، z) للمربع.<br />
+		الافتراضي هو (- Infinity، - Infinity، - Infinity).
+		</p>
+
+		<h2>الطرق (Methods)</h2>
+
+		<h3>[method:this applyMatrix4]( [param:Matrix4 matrix] )</h3>
+		<p>
+		[page:Matrix4 matrix] - [page:Matrix4] للتطبيق<br /><br />
+		
+		يحول هذا Box3 مع المصفوفة الموردة.
+		</p>
+		
+		<h3>
+		[method:Vector3 clampPoint]( [param:Vector3 point], [param:Vector3 target] )
+		</h3>
+		<p>
+		[page:Vector3 point] - [page:Vector3] للتثبيت. <br />
+		[page:Vector3 target] — سيتم نسخ النتيجة في هذا Vector3.<br /><br />
+		
+		[link:https://en.wikipedia.org/wiki/Clamping_(graphics) يثبت] [page:Vector3 point] داخل حدود هذا المربع.<br />
+		</p>
+		
+		<h3>[method:Box3 clone]()</h3>
+		<p>
+		يعود بـ [page:Box3] جديد مع نفس [page:.min min] و [page:.max max] كهذا المربع.
+		</p>
+		
+		<h3>[method:Boolean containsBox]( [param:Box3 box] )</h3>
+		<p>
+		[page:Box3 box] - [page:Box3 Box3] للاختبار للتضمين.<br /><br />
+		
+		يعود بـ true إذا كان هذا المربع يشمل كامل [page:Box3 box]. إذا كان هذا و [page:Box3 box] متطابقان، <br />
+		فإن هذه الوظيفة تعود أيضًا بـ true.
+		</p>
+		
+		<h3>[method:Boolean containsPoint]( [param:Vector3 point] )</h3>
+		<p>
+		[page:Vector3 point] - [page:Vector3] للاختبار للتضمين.<br /><br />
+		
+		يعود بـ true إذا كانت [page:Vector3 point] المحددة تقع داخل أو على حدود هذا المربع.
+		</p>
+		
+		<h3>[method:this copy]( [param:Box3 box] )</h3>
+		<p>
+		[page:Box3 box] - [page:Box3] للنسخ.<br /><br />
+		
+		ينسخ [page:.min min] و [page:.max max] من [page:Box3 box] إلى هذا المربع.
+		</p>
+		
+		<h3>[method:Float distanceToPoint]( [param:Vector3 point] )</h3>
+		<p>
+		[page:Vector3 point] - [page:Vector3] لقياس المسافة إليها.<br /><br />
+		
+		يعود بالمسافة من أي حافة لهذا المربع إلى النقطة المحددة. إذا كانت [page:Vector3 point] داخل هذا المربع، فستكون المسافة 0.
+		</p>
+		
+		<h3>[method:Boolean equals]( [param:Box3 box] )</h3>
+		<p>
+		[page:Box3 box] - مربع للمقارنة مع هذا المربع.<br /><br />
+		
+		يعود بـ true إذا كان هذا المربع و [page:Box3 box] يشتركان في نفس الحدود السفلى والعليا.
+		</p>
+		
+		<h3>
+		[method:this expandByObject]( [param:Object3D object], [param:Boolean precise] )
+		</h3>
+		<p>
+		[page:Object3D object] - [page:Object3D] لتوسيع المربع به.<br />
+		precise - (اختياري) توسيع مربع التحديد بأقل ما يمكن على حساب المزيد من الحسابات. الافتراضي هو false.<br /><br />
+		
+		يوسع حدود هذا المربع لتضمين [page:Object3D object] وأطفاله، مع مراعاة تحولات الكائن والأطفال العالمية. قد يؤدي التابع إلى مربع أكبر من اللازم بشكل صارم (ما لم يتم تحديد معلمة precise على true).
+		</p>
+		
+		<h3>[method:this expandByPoint]( [param:Vector3 point] )</h3>
+		<p>
+		[page:Vector3 point] - [page:Vector3] التي يجب تضمينها في المربع.<br /><br />
+		
+		يوسع حدود هذا المربع لتضمين [page:Vector3 point].
+		</p>
+		
+		<h3>[method:this expandByScalar]( [param:Float scalar] )</h3>
+		<p>
+		[page:Float scalar] - المسافة التي يتم توسيع المربع بها.<br /><br />
+		
+		يوسع كل بُعد من أبعاد المربع بواسطة [page:Float scalar]. إذا كانت سالبة، فستتقلص أبعاد المربع.
+		</p>
+		
+		<h3>[method:this expandByVector]( [param:Vector3 vector] )</h3>
+		<p>
+		[page:Vector3 vector] - [page:Vector3] لتوسيع المربع به.<br /><br />
+		
+		يوسع هذا المربع بشكل متساوٍ بواسطة [page:Vector3 vector]. سيتم توسيع عرض هذا المربع بمكون x من [page:Vector3 vector] في كلا الاتجاهين. ستتم توسيع ارتفاع هذا المربع بمكون y من [page:Vector3 vector] في كلا الاتجاهين. ستتم توسيع عمق هذا المربع بمكون z من `vector` في كلا الاتجاهين.
+		</p>
+
+		<h3>[method:Sphere getBoundingSphere]( [param:Sphere target] )</h3>
+		<p>
+		[page:Sphere target] — سيتم نسخ النتيجة في هذا الكرة.<br /><br />
+		
+		يحصل على [page:Sphere] يحد المربع.
+		</p>
+		
+		<h3>[method:Vector3 getCenter]( [param:Vector3 target] )</h3>
+		<p>
+		[page:Vector3 target] — سيتم نسخ النتيجة في هذا Vector3.<br /><br />
+		
+		يعود بنقطة المركز للمربع كـ [page:Vector3].
+		</p>
+		
+		<h3>
+		[method:Vector3 getParameter]( [param:Vector3 point], [param:Vector3 target] )
+		</h3>
+		<p>
+		[page:Vector3 point] - [page:Vector3].<br />
+		[page:Vector3 target] — سيتم نسخ النتيجة في هذا Vector3.<br /><br />
+		
+		يعود بنقطة كنسبة من عرض وارتفاع وعمق هذا المربع.
+		</p>
+		
+		<h3>[method:Vector3 getSize]( [param:Vector3 target] )</h3>
+		<p>
+		[page:Vector3 target] — سيتم نسخ النتيجة في هذا Vector3.<br /><br />
+		
+		يعود بعرض وارتفاع وعمق هذا المربع.
+		</p>
+		
+		<h3>[method:this intersect]( [param:Box3 box] )</h3>
+		<p>
+		[page:Box3 box] - مربع للتقاطع معه.<br /><br />
+		
+		يحسب تقاطع هذا و [page:Box3 box]، وضع الحد الأقصى لهذا المربع على أقل حدود علوية للمربعين والحد الأدنى لهذا المربع على أكبر حدود سفلى للمربعين. إذا لم يكن هناك تداخل، يجعل هذا المربع فارغًا.
+		</p>
+		
+		<h3>[method:Boolean intersectsBox]( [param:Box3 box] )</h3>
+		<p>
+		[page:Box3 box] - مربع للتحقق من التقاطع ضده.<br /><br />
+		
+		يحدد ما إذا كان هذا المربع يتقاطع مع [page:Box3 box] أم لا.
+		</p>
+
+		<h3>[method:Boolean intersectsPlane]( [param:Plane plane] )</h3>
+		<p>
+		[page:Plane plane] - [page:Plane] للتحقق من التقاطع ضده.<br /><br />
+		
+		يحدد ما إذا كان هذا المربع يتقاطع مع [page:Plane plane] أم لا.
+		</p>
+		
+		<h3>[method:Boolean intersectsSphere]( [param:Sphere sphere] )</h3>
+		<p>
+		[page:Sphere sphere] - [page:Sphere] للتحقق من التقاطع ضده.<br /><br />
+		
+		يحدد ما إذا كان هذا المربع يتقاطع مع [page:Sphere sphere] أم لا.
+		</p>
+		
+		<h3>[method:Boolean intersectsTriangle]( [param:Triangle triangle] )</h3>
+		<p>
+		[page:Triangle triangle] - [page:Triangle] للتحقق من التقاطع ضده.<br /><br />
+		
+		يحدد ما إذا كان هذا المربع يتقاطع مع [page:Triangle triangle] أم لا.
+		</p>
+		
+		<h3>[method:Boolean isEmpty]()</h3>
+		<p>
+		يعود بـ true إذا كان هذا المربع يشمل صفر نقطة داخل حدوده.<br />
+		يرجى ملاحظة أن المربع الذي يحتوي على حدود سفلى وعلوية متساوية لا يزال يشمل نقطة واحدة، وهي النقطة التي تشترك فيها كلا الحدود.
+		</p>
+		
+		<h3>[method:this makeEmpty]()</h3>
+		<p>يجعل هذا المربع فارغًا.</p>
+		
+		<h3>[method:this set]( [param:Vector3 min], [param:Vector3 max] )</h3>
+		<p>
+		[page:Vector3 min] - [page:Vector3] يمثل الحد السفلي (x، y، z) للمربع.<br />
+		[page:Vector3 max] - [page:Vector3] يمثل الحد العلوي (x، y، z) للمربع.<br /><br />
+		
+		يضع الحدود السفلى والعلوية (x، y، z) لهذا المربع.<br />
+		يرجى ملاحظة أن هذه الطريقة تنسخ فقط القيم من الكائنات المحددة.
+		</p>
+		
+		<h3>[method:this setFromArray]( [param:Array array] )</h3>
+		<p>
+		array -- مجموعة من بيانات الموضع التي سيغلفها المربع الناتج.<br /><br />
+		
+		يضع الحدود العلوية والسفلى لهذا المربع لتشمل كل البيانات في `array`.
+		</p>
+		
+		<h3>
+			[method:this setFromBufferAttribute]( [param:BufferAttribute attribute] )
+		</h3>
+		<p>
+		[page:BufferAttribute attribute] - سمة مخزنة لبيانات الموضع التي سيغلفها المربع الناتج.<br /><br />
+			
+		يضع الحدود العلوية والسفلى لهذا المربع لتشمل كل البيانات في [page:BufferAttribute attribute].
+		</p>
+			
+		<h3>
+		[method:this setFromCenterAndSize]( [param:Vector3 center], [param:Vector3 size] )
+		</h3>
+		<p>
+		[page:Vector3 center], - الموضع المركزي المطلوب للمربع. <br />
+		[page:Vector3 size] - الأبعاد المطلوبة x و y و z للمربع.<br /><br />
+			
+		يضع هذا المربع في مركز [page:Vector3 center] ويضع عرض وارتفاع وعمق هذا المربع على القيم المحددة <br />
+		في [page:Vector3 size]
+		</p>
+			
+		<h3>
+		[method:this setFromObject]( [param:Object3D object], [param:Boolean precise] )
+		</h3>
+		<p>
+		[page:Object3D object] - [page:Object3D] لحساب مربع التحديد الخاص به.<br />
+		precise - (اختياري) حساب أصغر مربع تحديد محدود بمحاور العالم على حساب المزيد من الحسابات. الافتراضي هو false.<br /><br />
+			
+		يحسب مربع التحديد المحدود بمحاور العالم لـ [page:Object3D] (بما في ذلك أطفاله)، مع مراعاة تحولات الكائن والأطفال العالمية. قد يؤدي التابع إلى مربع أكبر من اللازم بشكل صارم.
+		</p>
+			
+		<h3>[method:this setFromPoints]( [param:Array points] )</h3>
+		<p>
+		[page:Array points] - مجموعة من [page:Vector3 Vector3s] التي سيحتوي عليها المربع الناتج.<br /><br />
+			
+		يضع الحدود العلوية والسفلى لهذا المربع لتشمل كل النقاط في [page:Array points].
+		</p>
+			
+		<h3>[method:this translate]( [param:Vector3 offset] )</h3>
+		<p>
+		[page:Vector3 offset] - اتجاه ومسافة التحويل.<br /><br />
+			
+		يضيف [page:Vector3 offset] إلى كلا من الحدود العلوية والسفلى لهذا المربع، بشكل فعال ينقل هذا المربع [page:Vector3 offset] وحدات في الفضاء ثلاثي الأبعاد.
+		</p>
+			
+		<h3>[method:this union]( [param:Box3 box] )</h3>
+		<p>
+		[page:Box3 box] - مربع سيتم دمجه مع هذا المربع.<br /><br />
+			
+		يحسب اتحاد هذا المربع و [page:Box3 box]، وضع الحد الأقصى لهذا المربع على أكبر حدود علوية للمربعين والحد الأدنى لهذا المربع على أقل حدود سفلى للمربعين.
+		</p>
+			
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 364 - 0
docs/api/ar/math/Color.html

@@ -0,0 +1,364 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		<h1>[name]</h1>
+
+		<p class="desc">فئة تمثل لونًا.</p>
+
+		<p>
+		التكرار عبر مثيل [name] سيعود بمكوناته (r، g، b) بالترتيب المقابل.
+		</p>
+		
+		<h2>أمثلة الكود</h2>
+		
+		<p>يمكن تهيئة Color بأي من الطرق التالية:</p>
+		<code>
+		// المُنشئ الفارغ - سيكون الافتراضي أبيض
+		const color1 = new THREE.Color();
+		
+		// لون سداسي عشري (مستحسن)
+		const color2 = new THREE.Color( 0xff0000 );
+		
+		// سلسلة RGB
+		const color3 = new THREE.Color("rgb(255، 0، 0)");
+		const color4 = new THREE.Color("rgb(100٪، 0٪، 0٪)");
+		
+		// اسم لون X11 - يتم دعم جميع أسماء الألوان الـ 140.
+		// يرجى ملاحظة عدم وجود CamelCase في الاسم
+		const color5 = new THREE.Color( 'skyblue' );
+		
+		// سلسلة HSL
+		const color6 = new THREE.Color("hsl(0، 100٪، 50٪)");
+		
+		// قيم RGB منفصلة بين 0 و 1
+		const color7 = new THREE.Color( 1، 0، 0 );
+		</code>
+		
+		<h2>المنشئ (Constructor)</h2>
+		
+		<h3>
+		[name]( [param:Color_Hex_or_String r]، [param:Float g]، [param:Float b] )
+		</h3>
+		<p>
+		[page:Color_Hex_or_String r] - (اختياري) إذا تم تعريف الوسيطتين [page:Float g] و [page:Float b]، فهو مكون أحمر للون. إذا لم يتم تعريفهما، فيمكن أن يكون [link:https://en.wikipedia.org/wiki/Web_colors#Hex_triplet ثلاثيًا سداسيًا عشريًا] (مستحسن)، أو سلسلة على طراز CSS، أو مثيل `Color` آخر.<br />
+		[page:Float g] - (اختياري) إذا تم تعريفه، فهو مكون أخضر للون.<br />
+		[page:Float b] - (اختياري) إذا تم تعريفه، فهو مكون أزرق للون.<br /><br />
+		
+		يرجى ملاحظة أن الطريقة القياسية لتحديد اللون في three.js هي باستخدام [link:https://en.wikipedia.org/wiki/Web_colors#Hex_triplet ثلاثية سداسية عشرية]، وتستخدم هذه الطريقة في جميع أنحاء المستندات المتبقية.<br /><br />
+		
+		عند تعريف جميع المعاملات ثم [page:Color_Hex_or_String r] هو المكوِّن الأحمر و [page:Float g] هو المكوِّن الأخضر و [page:Float b] هو المكوِّن الأزرق للون.<br />
+		عند تعريف [page:Color_Hex_or_String r] فقط:<br />
+		</p>
+		
+		<ul>
+			<li>
+			يمكن أن يكون [link:https://en.wikipedia.org/wiki/Web_colors#Hex_triplet ثلاثيًا سداسيًا عشريًا] يمثل اللون (مستحسن).
+			</li>
+			<li>يمكن أن يكون مثيل Color آخر.</li>
+			<li>
+				يمكن أن يكون سلسلة على طراز CSS. على سبيل المثال:
+				<ul>
+					<li>'rgb(250، 0،0)'</li>
+					<li>'rgb(100٪،0٪،0٪)'</li>
+					<li>'hsl(0، 100٪، 50٪)'</li>
+					<li>'#ff0000'</li>
+					<li>'#f00'</li>
+					<li>'red'</li>
+				</ul>
+			</li>
+		</ul>
+			
+		<h2>الخصائص (Properties)</h2>
+			
+		<h3>[property:Boolean isColor]</h3>
+		<p>علامة للقراءة فقط للتحقق مما إذا كان كائنًا معينًا من نوع [name].</p>
+			
+		<h3>[property:Float r]</h3>
+		<p>قيمة قناة حمراء بين 0 و 1. الافتراضي هو 1.</p>
+			
+		<h3>[property:Float g]</h3>
+		<p>قيمة قناة خضراء بين 0 و 1. الافتراضي هو 1.</p>
+			
+		<h3>[property:Float b]</h3>
+		<p>قيمة قناة زرقاء بين 0 و 1. الافتراضي هو 1.</p>
+		
+		<h2>الطرق (Methods)</h2>
+		
+		<h3>[method:this add]( [param:Color color] )</h3>
+		<p>
+		يضيف قيم RGB لـ [page:Color color] إلى قيم RGB لهذا اللون.
+		</p>
+		
+		<h3>
+		[method:this addColors]( [param:Color color1], [param:Color color2] )
+		</h3>
+		<p>
+		يضع قيم RGB لهذا اللون على مجموع قيم RGB لـ [page:Color color1] و [page:Color color2].
+		</p>
+		
+		<h3>[method:this addScalar]( [param:Number s] )</h3>
+		<p>يضيف [page:Number s] إلى قيم RGB لهذا اللون.</p>
+		
+		<h3>[method:this applyMatrix3]( [param:Matrix3 m] )</h3>
+		<p>
+		يطبق التحول [page:Matrix3 m] على مكونات RGB لهذا اللون.
+		</p>
+		
+		<h3>[method:Color clone]()</h3>
+		<p>
+		يعود بـ Color جديد مع نفس قيم [page:.r r] و [page:.g g] و [page:.b b] كهذا المربع.
+		</p>
+		
+		<h3>[method:this copy]( [param:Color color] )</h3>
+		<p>
+		ينسخ معاملات [page:.r r] و [page:.g g] و [page:.b b] من [page:Color color] في هذا اللون.
+		</p>
+		
+		<h3>[method:this convertLinearToSRGB]()</h3>
+		<p>يحول هذا اللون من مساحة خطية إلى مساحة sRGB.</p>
+		
+		<h3>[method:this convertSRGBToLinear]()</h3>
+		<p>يحول هذا اللون من مساحة sRGB إلى مساحة خطية.</p>
+		
+		<h3>[method:this copyLinearToSRGB]( [param:Color color] )</h3>
+		<p>
+		[page:Color color] — لون للنسخ.<br />
+		
+		ينسخ اللون المعطى في هذا اللون، ثم يحول هذا اللون من مساحة خطية إلى مساحة sRGB.
+		</p>
+		
+
+		<h3>[method:this copySRGBToLinear]( [param:Color color] )</h3>
+		<p>
+		[page:Color color] — لون للنسخ.<br />
+		
+		ينسخ اللون المعطى في هذا اللون، ثم يحول هذا اللون من مساحة sRGB إلى مساحة خطية.
+		</p>
+		
+		<h3>[method:Boolean equals]( [param:Color color] )</h3>
+		<p>
+		يقارن قيم RGB لـ [page:Color color] مع تلك الموجودة في هذا الكائن. يعود بـ true إذا كانت متطابقة، و false في حالة عدم التطابق.
+		</p>
+		
+		<h3>
+		[method:this fromArray]( [param:Array array], [param:Integer offset] )
+		</h3>
+		<p>
+		[page:Array array] - [page:Array] من الأرقام العشرية على شكل [[page:Float r]، [page:Float g]، [page:Float b]].<br />
+		[page:Integer offset] - إزاحة اختيارية في المجموعة.<br /><br />
+		
+		يضع مكونات هذا اللون بناءً على مجموعة مهيأة مثل [[page:Float r]، [page:Float g]، [page:Float b]].
+		</p>
+		
+		<h3>
+		[method:this fromBufferAttribute]( [param:BufferAttribute attribute], [param:Integer index] )
+		</h3>
+		<p>
+		[page:BufferAttribute attribute] - السمة المصدر.<br />
+		[page:Integer index] - فهرس في السمة.<br /><br />
+		
+		يضع مكونات هذا اللون من [page:BufferAttribute attribute].
+		</p>
+		
+		<h3>
+		[method:Integer getHex]( [param:string colorSpace] = SRGBColorSpace )
+		</h3>
+		<p>يعود بالقيمة السداسية عشرية لهذا اللون.</p>
+		
+		<h3>
+		[method:String getHexString]( [param:string colorSpace] = SRGBColorSpace )
+		</h3>
+		<p>
+		يعود بالقيمة السداسية عشرية لهذا اللون كسلسلة (على سبيل المثال، 'FFFFFF').
+		</p>
+
+		<h3>
+			[method:Object getHSL]( [param:Object target], [param:string colorSpace] = LinearSRGBColorSpace )
+		</h3>
+		<p>
+		[page:Object target] — سيتم نسخ النتيجة في هذا الكائن. يضيف مفاتيح h و s و l إلى الكائن (إذا لم يكن موجودًا بالفعل).<br /><br />
+			
+		يحول قيم [page:.r r] و [page:.g g] و [page:.b b] لهذا اللون إلى تنسيق [link:https://en.wikipedia.org/wiki/HSL_and_HSV HSL] ويعود بكائن على الشكل:
+			
+		<code>
+		{ 
+			h: 0, 
+			s: 0, 
+			l: 0 
+		} 
+		</code>
+		</p>
+			
+		<h3>
+		[method:Color getRGB]( [param:Color target], [param:string colorSpace] = LinearSRGBColorSpace )
+		</h3>
+		<p>
+		[page:Color target] — سيتم نسخ النتيجة في هذا الكائن.<br /><br />
+			
+		يعود بقيم RGB لهذا اللون كمثيل من [page:Color].
+		</p>
+			
+		<h3>
+		[method:String getStyle]( [param:string colorSpace] = SRGBColorSpace )
+		</h3>
+		<p>
+		يعود بقيمة هذا اللون كسلسلة على طراز CSS. مثال: `rgb(255،0،0)`.
+		</p>
+			
+		<h3>[method:this lerp]( [param:Color color], [param:Float alpha] )</h3>
+		<p>
+		[page:Color color] - لون للاقتراب منه.<br />
+		[page:Float alpha] - عامل التداخل في الفاصل المغلق `[0، 1]`.<br /><br />
+			
+		يتداخل بشكل خطي قيم RGB لهذا اللون نحو قيم RGB للحجة الممررة. يمكن التفكير في وسيطة alpha كالنسبة بين اللونين، حيث `0.0` هذا اللون و `1.0` هو الحجة الأولى.
+		</p>
+			
+
+		<h3>
+			[method:this lerpColors]( [param:Color color1], [param:Color color2], [param:Float alpha] )
+		</h3>
+		<p>
+		[page:Color color1] - اللون الابتدائي [page:Color].<br />
+		[page:Color color2] - [page:Color] للتداخل نحوه.<br />
+		[page:Float alpha] - عامل التداخل، عادة في الفاصل المغلق `[0، 1]`.<br /><br />
+			
+		يضع هذا اللون ليكون اللون المتداخل بشكل خطي بين [page:Color color1] و [page:Color color2] حيث يكون alpha هو نسبة المسافة على الخط الذي يربط بين اللونين - سيكون alpha = 0 [page:Color color1]، وسيكون alpha = 1 [page:Color color2].
+		</p>
+			
+		<h3>[method:this lerpHSL]( [param:Color color], [param:Float alpha] )</h3>
+		<p>
+		[page:Color color] - لون للاقتراب منه.<br />
+		[page:Float alpha] - عامل التداخل في الفاصل المغلق `[0، 1]`.<br /><br />
+			
+		يتداخل بشكل خطي قيم HSL لهذا اللون نحو قيم HSL للحجة الممررة. يختلف عن [page:.lerp] الكلاسيكية بعدم التداخل مباشرة من لون إلى آخر، ولكن بدلاً من ذلك يمر عبر جميع الألوان الموجودة بين تلك الألوان. يمكن التفكير في وسيطة alpha كالنسبة بين اللونين، حيث 0.0 هذا اللون و 1.0 هو الحجة الأولى.
+		</p>
+			
+		<h3>[method:this multiply]( [param:Color color] )</h3>
+		<p>
+		يضرب قيم RGB لهذا اللون بقيم RGB لـ [page:Color color] المعطى.
+		</p>
+			
+		<h3>[method:this multiplyScalar]( [param:Number s] )</h3>
+		<p>يضرب قيم RGB لهذا اللون بـ [page:Number s].</p>
+			
+		<h3>
+		[method:this offsetHSL]( [param:Float h], [param:Float s], [param:Float l] )
+		</h3>
+		<p>
+		يضيف [page:Float h] و [page:Float s] و [page:Float l] المعطى إلى قيم هذا اللون. داخليًا، يحول هذا اللون قيم [page:.r r] و [page:.g g] و [page:.b b] إلى HSL، يضيف [page:Float h] و [page:Float s] و [page:Float l]، ثم يحول اللون مرة أخرى إلى RGB.
+		</p>
+			
+		<h3>[method:this set]( [param:Color_Hex_or_String r], [param:Float g], [param:Float b] )</h3>
+		<p>
+		[page:Color_Hex_or_String r] - (اختياري) إذا تم تعريف الوسيطتين [page:Float g] و [page:Float b]، فهو مكون أحمر للون. إذا لم يتم تعريفهما، فيمكن أن يكون [link:https://en.wikipedia.org/wiki/Web_colors#Hex_triplet ثلاثيًا سداسيًا عشريًا] (مستحسن)، أو سلسلة على طراز CSS، أو مثيل `Color` آخر.<br />
+		[page:Float g] - (اختياري) إذا تم تعريفه، فهو مكون أخضر للون.<br />
+		[page:Float b] - (اختياري) إذا تم تعريفه، فهو مكون أزرق للون.<br /><br />
+		
+		انظر المُنشئ أعلاه للحصول على التفاصيل الكاملة حول الوسائط الممكنة. يفوض إلى [page:.copy]،
+		[page:.setStyle]، [page:.setRGB] أو [page:.setHex] اعتمادًا على نوع الإدخال.
+		</p>
+		
+		<h3>[method:this setFromVector3]( [param:Vector3 vector] )</h3>
+		<p>
+		يضع مكونات [page:.r r] و [page:.g g] و [page:.b b] لهذا اللون من مكونات x و y و z لـ [page:Vector3 vector] المحدد.
+		</p>
+		
+		<h3>
+		[method:this setHex]( [param:Integer hex], [param:string colorSpace] = SRGBColorSpace )
+		</h3>
+		<p>
+		[page:Integer hex] —
+		[link:https://en.wikipedia.org/wiki/Web_colors#Hex_triplet شكل ثلاثي سداسي عشر].<br /><br />
+		
+		يضع هذا اللون من قيمة سداسية عشرية.
+		</p>
+		
+		<h3>
+		[method:this setHSL]( [param:Float h], [param:Float s], [param:Float l], [param:string colorSpace] = LinearSRGBColorSpace )
+		</h3>
+		<p>
+		[page:Float h] — قيمة اللون بين 0.0 و 1.0 <br />
+		[page:Float s] — قيمة التشبع بين 0.0 و 1.0 <br />
+		[page:Float l] — قيمة الإضاءة بين 0.0 و 1.0<br /><br />
+		
+		يضع اللون من قيم HSL.
+		</p>
+		
+		<h3>
+		[method:this setRGB]( [param:Float r], [param:Float g], [param:Float b], [param:string colorSpace] = LinearSRGBColorSpace )
+		</h3>
+		<p>
+		[page:Float r] — قيمة قناة حمراء بين 0.0 و 1.0.<br />
+		[page:Float g] — قيمة قناة خضراء بين 0.0 و 1.0.<br />
+		[page:Float b] — قيمة قناة زرقاء بين 0.0 و 1.0.<br /><br />
+		
+		يضع هذا اللون من قيم RGB.
+		</p>
+		
+		<h3>[method:this setScalar]( [param:Float scalar] )</h3>
+		<p>
+		[page:Float scalar] — قيمة بين 0.0 و 1.0.<br /><br />
+		
+		تضع جميع مكونات اللون الثلاثة على قيمة [page:Float scalar].
+		</p>
+		
+		<h3>
+			[method:this setStyle]( [param:String style], [param:string colorSpace] = SRGBColorSpace )
+		</h3>
+		<p>
+		[page:String style] — اللون كسلسلة على طراز CSS.<br /><br />
+			
+		يضع هذا اللون من سلسلة على طراز CSS. على سبيل المثال، "rgb(250، 0،0)"، "rgb(100٪، 0٪، 0٪)"، "hsl(0، 100٪، 50٪)"، "#ff0000"، "#f00" أو "red" (أو أي [link:https://en.wikipedia.org/wiki/X11_color_names#Color_name_chart اسم لون X11] - يتم دعم جميع أسماء الألوان الـ 140).<br />
+			
+		يتم قبول الألوان شفافة مثل "rgba(255، 0، 0، 0.5)" و "hsla(0، 100٪، 50٪، 0.5)" أيضًا، ولكن سيتم تجاهل إحداثية قناة ألفا.<br /><br />
+			
+		يرجى ملاحظة أنه بالنسبة لأسماء الألوان X11، تصبح الكلمات المتعددة مثل Dark Orange السلسلة 'darkorange'.
+		</p>
+			
+		<h3>
+		[method:this setColorName]( [param:String style], [param:string colorSpace] = SRGBColorSpace )
+		</h3>
+		<p>
+		[page:String style] — اسم اللون (من [link:https://en.wikipedia.org/wiki/X11_color_names#Color_name_chart أسماء الألوان X11]).<br /><br />
+			
+		يضع هذا اللون من اسم لون. أسرع من طريقة [page:.setStyle] إذا كنت لا تحتاج إلى التنسيقات الأخرى على طراز CSS.<br /><br />
+			
+		للراحة، يتم عرض قائمة الأسماء في Color.NAMES كتجزئة:
+		<code>
+		Color.NAMES.aliceblue // returns 0xF0F8FF
+		</code>
+		</p>
+			
+		<h3>[method:this sub]( [param:Color color] )</h3>
+		<p>
+		يطرح مكونات RGB للون المحدد من مكونات RGB لهذا اللون. إذا نتج عن ذلك مكون سالب، يتم تعيين هذا المكون إلى صفر.
+		</p>
+			
+		<h3>
+		[method:Array toArray]( [param:Array array], [param:Integer offset] )
+		</h3>
+		<p>
+		[page:Array array] - مجموعة اختيارية لتخزين اللون فيها. <br />
+		[page:Integer offset] - إزاحة اختيارية في المجموعة.<br /><br />
+			
+		يعود بمجموعة على شكل [r, g, b].
+		</p>
+			
+		<h3>[method:Number toJSON]()</h3>
+		<p>
+		هذه الطرق تحدد نتيجة التسلسل لـ [name]. يعود باللون كقيمة سداسية عشرية.
+		</p>
+
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 77 - 0
docs/api/ar/math/Cylindrical.html

@@ -0,0 +1,77 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		<h1>[name]</h1>
+
+		<p class="desc">
+		نقطة
+		[link:https://en.wikipedia.org/wiki/Cylindrical_coordinate_system الإحداثيات الاسطوانية].
+		</p>
+		 
+		<h2>المنشئ (Constructor)</h2>
+		 
+		<h3>
+		[name]( [param:Float radius], [param:Float theta], [param:Float y] )
+		</h3>
+		<p>
+		[page:Float radius] - المسافة من المبدأ إلى نقطة في المستوى x-z. الافتراضي هو `1.0`.<br />
+		[page:Float theta] - الزاوية عكس عقارب الساعة في المستوى x-z مقاسة بالراديان من المحور z الموجب. الافتراضي هو `0`.<br />
+		[page:Float y] - الارتفاع فوق المستوى x-z. الافتراضي هو `0`.
+		</p>
+		 
+		<h2>الخصائص (Properties)</h2>
+		 
+		<h3>[property:Float radius]</h3>
+		 
+		<h3>[property:Float theta]</h3>
+		 
+		<h3>[property:Float y]</h3>
+		 
+		<h2>الطرق (Methods)</h2>
+		 
+		<h3>[method:Cylindrical clone]()</h3>
+		<p>
+		يعيد اسطواني جديد بنفس خصائص [page:.radius radius],
+		[page:.theta theta] و [page:.y y] كهذا.
+		</p>
+		 
+		<h3>[method:this copy]( [param:Cylindrical other] )</h3>
+		<p>
+		ينسخ قيم خصائص [page:.radius radius],
+		[page:.theta theta] و [page:.y y] للإسطواني الممرر إلى هذا الإسطواني.
+		</p>
+		 
+		<h3>
+		[method:this set]( [param:Float radius], [param:Float theta], [param:Float y] )
+		</h3>
+		<p>
+		يضبط قيم خصائص هذا الإسطواني [page:.radius radius], [page:.theta theta] و [page:.y y].
+		</p>
+		 
+		<h3>[method:this setFromVector3]( [param:Vector3 vec3] )</h3>
+		<p>
+		يضبط قيم خصائص هذا الإسطواني [page:.radius radius], [page:.theta theta]
+		و [page:.y y] من الـ[page:Vector3 Vector3].
+		</p>
+		 
+		<h3>
+		[method:this setFromCartesianCoords]( [param:Float x], [param:Float y], [param:Float z] )
+		</h3>
+		<p>
+		يضبط قيم خصائص هذا الإسطواني [page:.radius radius], [page:.theta theta] و
+		[page:.y y] من الإحداثيات الديكارتية.
+		</p>
+		 
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 175 - 0
docs/api/ar/math/Euler.html

@@ -0,0 +1,175 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		<h1>[name]</h1>
+
+		<p class="desc">
+		فئة تمثل [link:http://en.wikipedia.org/wiki/Euler_angles زوايا أويلر].<br /><br />
+		 
+		تصف زوايا أويلر التحول الدوار بتدوير كائن على
+		محاوره المختلفة بمقادير محددة لكل محور، وترتيب محور محدد.
+		</p>
+		 
+		<p>
+		التكرار عبر نسخة [name] سيعود بمكوناته (x، y، z،
+		order) في الترتيب المقابل.
+		</p>
+		 
+		<h2>مثال الكود</h2>
+		 
+		<code>
+		const a = new THREE.Euler( 0, 1, 1.57, 'XYZ' );
+		const b = new THREE.Vector3( 1, 0, 1 );
+		b.applyEuler(a);
+		</code>
+		 
+		<h2>المنشئ (Constructor)</h2>
+		 
+		<h3>
+		[name]( [param:Float x], [param:Float y], [param:Float z], [param:String order] )
+		</h3>
+		<p>
+		[page:Float x] - (اختياري) زاوية المحور x بالراديان. الافتراضي هو
+		`0`.<br />
+		[page:Float y] - (اختياري) زاوية المحور y بالراديان. الافتراضي هو
+		`0`.<br />
+		[page:Float z] - (اختياري) زاوية المحور z بالراديان. الافتراضي هو
+		`0`.<br />
+		[page:String order] - (اختياري) سلسلة تمثل الترتيب الذى يتم فيه تطبیق
+		التدویرات، الافتراضی هو 'XYZ' (یجب أن تكون بحروف كبیرة).<br /><br />
+		</p>
+		 
+		<h2>الخصائص (Properties)</h2>
+		 
+		<h3>[property:Boolean isEuler]</h3>
+		<p>علامة للقراءة فقط للتحقق مما إذا كان كائنًا معطىً من نوع [name].</p>
+		 
+		<h3>[property:String order]</h3>
+		<p>
+		الترتيب الذي يتم فيه تطبيق التدويرات. الافتراضي هو 'XYZ'، مما يعني أن
+		الكائن سيتم تدويره أولاً حول محور X الخاص به، ثم محور Y الخاص به وأخيرًا
+		محور Z الخاص به. الإمكانيات الأخرى هي: 'YZX'، 'ZXY'، 'XZY'، 'YXZ'
+		و'ZYX'. يجب أن تكون هذه بحروف كبيرة.<br /><br />
+	 
+		يستخدم Three.js زوايا Tait-Bryan `intrinsic`. هذا يعني أن التدويرات
+		يتم تنفيذها بالنسبة إلى نظام الإحداثيات `local`. أي للترتيب 'XYZ'، يتم
+		التدوير أولاً حول محور local-X (وهو نفسه محور world-X)، ثم حول local-Y
+		(الذي قد يكون الآن مختلفًا عن محور world Y)، ثم local-Z (الذي قد يكون
+		مختلفًا عن محور world Z).<br /><br />
+		</p>
+	 
+		<h3>[property:Float x]</h3>
+		<p>القيمة الحالية للمكون x.<br /><br /></p>
+	 
+		<h3>[property:Float y]</h3>
+		<p>القيمة الحالية للمكون y.<br /><br /></p>
+	 
+		<h3>[property:Float z]</h3>
+		<p>القيمة الحالية للمكون z.<br /><br /></p>
+	 
+		<h2>الطرق (Methods)</h2>
+	 
+		<h3>[method:this copy]( [param:Euler euler] )</h3>
+		<p>ينسخ قيمة [page:Euler euler] إلى هذه الزاوية الأويلر.</p>
+	 
+		<h3>[method:Euler clone]()</h3>
+		<p>يعود إلى أويلر جديد بنفس المعلمات كهذا.</p>
+	 
+		<h3>[method:Boolean equals]( [param:Euler euler] )</h3>
+		<p>يتحقق من المساواة الصارمة لهذه الزاوية الأويلر و[page:Euler euler].</p>
+	 
+		<h3>[method:this fromArray]( [param:Array array] )</h3>
+		<p>
+		[page:Array array] من طول 3 أو 4. يتوافق السجل 4 اختياريًا
+		إلى [page:.order order].<br /><br />
+	 
+		يعيّن زاوية [page:.x x] لهذه الزاوية الأويلر إلى `array[0]`. <br />
+		يعيّن زاوية [page:.y y] لهذه الزاوية الأويلر إلى `array[1]`. <br />
+		يعيّن زاوية [page:.z z] لهذه الزاوية الأويلر إلى `array[2]`. <br />
+		اختیاریًا یعین ترتیب هذه الزاویة الأویلر [page:.order order] إلى `array[3]`.
+		</p>
+	 
+		<h3>[method:this reorder]( [param:String newOrder] )</h3>
+		<p>
+		يعيد تعيين زاوية الأويلر بترتيب جديد عن طريق إنشاء رباعية من هذه
+		زاوية الأويلر ثم تعيين هذه الزاوية الأويلر مع الرباعية والترتيب
+		الجديد. <br /><br />
+	 
+		<em>*تحذير*: هذا يتجاهل معلومات الثورة.</em>
+		</p>
+	 
+		<h3>
+		[method:this set]( [param:Float x], [param:Float y], [param:Float z], [param:String order] )
+		</h3>
+		<p>
+		[page:.x x] - زاوية المحور x بالراديان.<br />
+		[page:.y y] - زاوية المحور y بالراديان.<br />
+		[page:.z z] - زاوية المحور z بالراديان.<br />
+		[page:.order order] - (اختياري) سلسلة تمثل الترتيب الذي يتم فيه تطبيق
+		التدويرات.<br /><br />
+	 
+		يضبط زوايا هذا التحول الأويلر واختياريًا الترتيب [page:.order order].
+		</p>
+	 
+		<h3>
+		[method:this setFromRotationMatrix]( [param:Matrix4 m], [param:String order] )
+		</h3>
+		<p>
+		[page:Matrix4 m] - a [page:Matrix4] منها 3x3 العلوية من المصفوفة هي
+		مصفوفة دوران نقية
+		(أي غير مقاسة).<br />
+		[page:.order order] - (اختياري) سلسلة تمثل الترتيب الذي يتم فيه تطبيق
+		التدويرات.<br />
+	 
+		يضبط زوايا هذا التحول الأويلر من مصفوفة دوران نقية بناءً على
+		التوجه المحدد بالترتيب.
+		</p>
+	 
+		<h3>
+		[method:this setFromQuaternion]( [param:Quaternion q], [param:String order] )
+		</h3>
+		<p>
+		[page:Quaternion q] - رباعية معدلة.<br />
+		[page:.order order] - (اختياري) سلسلة تمثل الترتيب الذى يتم فيه تطبیق
+		التدويرات.<br />
+	 
+		يضبط زوايا هذا التحول الأويلر من رباعية معدلة بناءً على
+		التوجه المحدد بـ[page:.order order].
+		</p>
+	 
+		<h3>
+		[method:this setFromVector3]( [param:Vector3 vector], [param:String order] )
+		</h3>
+		<p>
+		[page:Vector3 vector] - [page:Vector3].<br />
+		[page:.order order] - (اختیاری) سلسلة تمثل الترتیب الذى يتم فيه تطبیق
+		التدویرات.<br /><br />
+	 
+		قم بضبط [page:.x x], [page:.y y] و[page:.z z]، وقم اختیاریًا بتحديث
+		الترتیب[page:.order order].
+		</p>
+	 
+		<h3>
+		[method:Array toArray]( [param:Array array], [param:Integer offset] )
+		</h3>
+		<p>
+		[page:Array array] - (optional) array to store the euler in.<br />
+		[page:Integer offset] (optional) offset in the array.<br />
+	 
+		يعود إلى مصفوفة من شكل [[page:.x x], [page:.y y], [page:.z z],
+	 	[page:.order order ]].
+		</p>
+	 
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 111 - 0
docs/api/ar/math/Frustum.html

@@ -0,0 +1,111 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		<h1>[name]</h1>
+
+		<p class="desc">
+		يتم استخدام [link:http://en.wikipedia.org/wiki/Frustum الهرم] لتحديد
+		ما هو داخل مجال رؤية الكاميرا. يساعدون في تسريع عملية التصيير - يمكن استبعاد
+		الكائنات التي تقع خارج هرم الكاميرا بأمان من التصيير.<br /><br />
+		 
+		هذه الفئة مخصصة بشكل رئيسي للاستخدام داخليًا من قبل محرك التصيير لحساب
+		هرم [page:Camera camera] أو [page:LightShadow.camera shadowCamera].
+		</p>
+		 
+		<h2>المنشئ (Constructor)</h2>
+		 
+		<h3>
+		[name]([param:Plane p0], [param:Plane p1], [param:Plane p2], [param:Plane p3], [param:Plane p4], [param:Plane p5])
+		</h3>
+		<p>
+		[page:Plane p0] - (اختياري) الافتراضي هو [page:Plane] جديد.<br />
+		[page:Plane p1] - (اختياري) الافتراضي هو [page:Plane] جديد.<br />
+		[page:Plane p2] - (اختياري) الافتراضي هو [page:Plane] جديد.<br />
+		[page:Plane p3] - (اختياري) الافتراضي هو [page:Plane] جديد.<br />
+		[page:Plane p4] - (اختياري) الافتراضي هو [page:Plane] جديد.<br />
+		[page:Plane p5] - (اختياري) الافتراضي هو [page:Plane] جديد.<br /><br />
+		 
+		ينشئ [name] جديد.
+		</p>
+		 
+		<h2>الخصائص (Properties)</h2>
+		 
+		<h3>[property:Array planes]</h3>
+		<p>مصفوفة من 6 مستويات [page:Plane].</p>
+		 
+		<h2>الطرق (Methods)</h2>
+		 
+		<h3>[method:Frustum clone]()</h3>
+		<p>أعد هرمًا جديدًا بنفس المعلمات كهذا.</p>
+		 
+		<h3>[method:Boolean containsPoint]( [param:Vector3 point] )</h3>
+		<p>
+		[page:Vector3 point] - [page:Vector3] للاختبار.<br /><br />
+		 
+		يتحقق مما إذا كان الهرم يحتوي على نقطة[page:Vector3].
+		</p>
+		 
+		<h3>[method:this copy]( [param:Frustum frustum] )</h3>
+		<p>
+		[page:Frustum frustum] - الهرم الذي يتم نسخه<br /><br />
+	 
+		ينسخ خصائص [page:Frustum frustum] الممررة إلى هذا.
+		</p>
+	 
+		<h3>[method:Boolean intersectsBox]( [param:Box3 box] )</h3>
+		<p>
+		[page:Box3 box] - [page:Box3] للتحقق من التقاطع.<br /><br />
+	 
+		يعود بـtrue إذا كان [page:Box3 box] يتقاطع مع هذا الهرم.
+		</p>
+	 
+		<h3>[method:Boolean intersectsObject]( [param:Object3D object] )</h3>
+		<p>
+		يتحقق مما إذا كانت [page:Object3D object]
+		[page:BufferGeometry.boundingSphere bounding sphere] تتقاطع مع
+		الهرم.<br /><br />
+	 
+		لاحظ أن الكائن يجب أن يحتوي على [page:BufferGeometry geometry] حتى
+		يمكن حساب الكرة المحيطة.
+		</p>
+	 
+		<h3>[method:Boolean intersectsSphere]( [param:Sphere sphere] )</h3>
+		<p>
+		[page:Sphere sphere] - [page:Sphere] للتحقق من التقاطع.<br /><br />
+	 
+		يعود بـtrue إذا كان [page:Sphere sphere] يتقاطع مع هذا الهرم.
+		</p>
+	 
+		<h3>[method:Boolean intersectsSprite]( [param:Sprite sprite] )</h3>
+		<p>
+		يتحقق مما إذا كان [page:Sprite sprite] يتقاطع مع الهرم.<br /><br />
+		</p>
+	 
+		<h3>
+		[method:this set]( [param:Plane p0], [param:Plane p1], [param:Plane p2], [param:Plane p3], [param:Plane p4], [param:Plane p5] )
+		</h3>
+		<p>
+		يضبط الهرم من المستويات الممررة. لا يوجد ترتيب مستوى ضمني.<br />
+		لاحظ أن هذه الطريقة تنسخ فقط القيم من الكائنات المعطاة.
+		</p>
+	 
+		<h3>[method:this setFromProjectionMatrix]( [param:Matrix4 matrix] )</h3>
+		<p>
+		[page:Matrix4 matrix] - Projection [page:Matrix4] used to set the
+	 	[page:.planes planes]<br /><br />
+		يضبط مستويات الهرم من مصفوفة الإسقاط.
+		</p>
+
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 68 - 0
docs/api/ar/math/Interpolant.html

@@ -0,0 +1,68 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		<h1>[name]</h1>
+
+		<p class="desc">
+		الفئة الأساسية المجردة للمتداخلات على العينات المعلمية.<br /><br />
+		 
+		مجال المعلمة هو أحادي البعد، عادةً الوقت أو مسار على طول منحنى
+		محدد بالبيانات.<br /><br />
+		 
+		يمكن أن تكون قيم العينات ذات أبعاد مختلفة وقد تطبق الفئات المشتقة
+		تفسيرات خاصة للبيانات.<br /><br />
+		 
+		توفر هذه الفئة البحث عن الفاصل في طريقة قالب، مؤجلًا التداخل الفعلي
+		إلى الفئات المشتقة.<br /><br />
+		 
+		تعقيد الوقت هو `O(1)` للوصول الخطي المتقاطع في نقطتين على الأكثر
+		و`O(log N)` للوصول العشوائي، حيث *N* هو عدد المواضع.<br /><br />
+		 
+		المراجع: [link:http://www.oodesign.com/template-method-pattern.html http://www.oodesign.com/template-method-pattern.html]
+		</p>
+		 
+		<h2>المنشئ (Constructor)</h2>
+		 
+		<h3>
+		[name]( parameterPositions, sampleValues, sampleSize, resultBuffer )
+		</h3>
+		<p>
+		parameterPositions -- مصفوفة من المواضع<br />
+		sampleValues -- مصفوفة من العينات<br />
+		sampleSize -- عدد العينات<br />
+		resultBuffer -- مخزن لتخزين نتائج التداخل.<br /><br />
+		 
+		ملاحظة: هذا غير مصمم ليتم استدعاؤه مباشرة.
+		</p>
+		 
+		<h2>الخصائص (Properties)</h2>
+		 
+		<h3>[property:null parameterPositions]</h3>
+		 
+		<h3>[property:null resultBuffer]</h3>
+		 
+		<h3>[property:null sampleValues]</h3>
+		 
+		<h3>[property:Object settings]</h3>
+		<p>هيكل إعدادات اختياري خاص بالفئة الفرعية.</p>
+		 
+		<h3>[property:null valueSize]</h3>
+		 
+		<h2>الطرق (Methods)</h2>
+		 
+		<h3>[method:Array evaluate]( [param:Number t] )</h3>
+		<p>تقيم المتداخل في الموضع *t*.</p>
+		 
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 142 - 0
docs/api/ar/math/Line3.html

@@ -0,0 +1,142 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		<h1>[name]</h1>
+
+		<p class="desc">
+		قطعة خطية هندسية ممثلة بنقطة البداية والنهاية.
+		</p>
+		 
+		<h2>المنشئ (Constructor)</h2>
+		 
+		<h3>[name]( [param:Vector3 start], [param:Vector3 end] )</h3>
+		<p>
+		[page:Vector3 start] - بداية القطعة الخطية. الافتراضي هو `(0, 0,
+		0)`.<br />
+		[page:Vector3 end] - نهاية القطعة الخطية. الافتراضي هو `(0, 0, 0)`.<br /><br />
+		 
+		ينشئ [name] جديد.
+		</p>
+		 
+		<h2>الخصائص (Properties)</h2>
+		 
+		<h3>[property:Vector3 start]</h3>
+		<p>[page:Vector3] يمثل نقطة بداية الخط.</p>
+		 
+		<h3>[property:Vector3 end]</h3>
+		<p>[page:Vector3] يمثل نقطة نهاية الخط.</p>
+		 
+		<h2>الطرق (Methods)</h2>
+		 
+		<h3>[method:this applyMatrix4]( [param:Matrix4 matrix] )</h3>
+		<p>يطبق تحويل المصفوفة على القطعة الخطية.</p>
+		 
+		<h3>[method:Vector3 at]( [param:Float t], [param:Vector3 target] )</h3>
+		<p>
+		[page:Float t] - استخدم قيم 0-1 لإرجاع موضع على طول القطعة
+		الخطية. <br />
+		[page:Vector3 target] — سيتم نسخ النتيجة في هذا Vector3.<br /><br />
+		 
+		يعود بمتجه في موضع معين على طول الخط. عندما يكون [page:Float t]
+		= 0، يعود بالمتجه البدائي، وعندما يكون [page:Float t] = 1 يعود
+		بالمتجه النهائي.<br />
+		</p>
+		 
+		<h3>[method:Line3 clone]()</h3>
+		<p>
+		يعود بـ[page:Line3] جديد مع نفس المتجهات [page:.start start] و
+		[page:.end end] كهذا.
+		</p>
+		 
+		<h3>
+		[method:Vector3 closestPointToPoint]( [param:Vector3 point], [param:Boolean clampToLine], [param:Vector3 target] )
+		</h3>
+		<p>
+		[page:Vector3 point] - أعد أقرب نقطة على الخط إلى هذه
+		نقطة.<br />
+		[page:Boolean clampToLine] - ما إذا كان يجب تثبيت القيمة المرجعة على
+		قطعة خطية.<br />
+		[page:Vector3 target] — سيتم نسخ النتيجة في هذا Vector3.<br /><br />
+		 
+		يعود بأقرب نقطة على الخط. إذا كان [page:Boolean clampToLine]
+		صحيحًا، فإن القيمة المرجعة ستكون مثبتة على قطعة خطية.
+		</p>
+		 
+		<h3>
+		[method:Float closestPointToPointParameter]( [param:Vector3 point], [param:Boolean clampToLine] )
+		</h3>
+		<p>
+		[page:Vector3 point] - نقطة لإرجاع معلم نقطة له.
+		<br />
+		[page:Boolean clampToLine] - ما إذا كان يجب تثبيت النتيجة في المدى `[0,
+		1]`.<br /><br />
+		 
+		يعود بمعلم نقطة بناءً على أقرب نقطة كما تم توصيلها على
+		قطعة خطية. إذا كان [page:Boolean clampToLine] صحيحًا، فإن القيمة المرجعة
+		ستكون بين 0 و 1.
+		</p>
+
+		<h3>[method:this copy]( [param:Line3 line] )</h3>
+		<p>
+		ينسخ متجهات [page:.start start] و [page:.end end] للخط الممرر
+		إلى هذا الخط.
+		</p>
+	 
+		<h3>[method:Vector3 delta]( [param:Vector3 target] )</h3>
+		<p>
+		[page:Vector3 target] — سيتم نسخ النتيجة في هذا Vector3.<br /><br />
+	 
+		يعود بمتجه دلتا القطعة الخطية (متجه [page:.end end]
+		ناقص متجه [page:.start start]).
+		</p>
+	 
+		<h3>[method:Float distance]()</h3>
+		<p>
+		يعود بـ[link:https://en.wikipedia.org/wiki/Euclidean_distance المسافة الإقليدية]
+		(المسافة الخطية) بين نقاط [page:.start start] و [page:.end end] للخط.
+		</p>
+	 
+		<h3>[method:Float distanceSq]()</h3>
+		<p>
+		يعود بمربع
+		[link:https://en.wikipedia.org/wiki/Euclidean_distance المسافة الإقليدية]
+		(المسافة الخطية) بين متجهات [page:.start start] و
+		[page:.end end] للخط.
+		</p>
+	 
+		<h3>[method:Boolean equals]( [param:Line3 line] )</h3>
+		<p>
+		[page:Line3 line] - [page:Line3] للمقارنة مع هذا.<br /><br />
+	 
+		يعود بـtrue إذا كانت نقاط [page:.start start] و [page:.end end] لكلا الخطين
+		متساوية.
+		</p>
+	 
+		<h3>[method:Vector3 getCenter]( [param:Vector3 target] )</h3>
+		<p>
+		[page:Vector3 target] — سيتم نسخ النتيجة في هذا Vector3.<br /><br />
+	 
+		يعود بمركز القطعة الخطية.
+		</p>
+	 
+		<h3>[method:this set]( [param:Vector3 start], [param:Vector3 end] )</h3>
+		<p>
+		[page:Vector3 start] - قم بضبط نقطة البدء[page:.start ] للخط.<br />
+		[page:Vector3 end] - قم بضبط نقطة النهاية[page:.end ] للخط.<br /><br />
+	 
+		يضبط قيم البدء والنهاية عن طريق نسخ المتجهات الموفرة.
+		</p>
+
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 208 - 0
docs/api/ar/math/MathUtils.html

@@ -0,0 +1,208 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		<h1>[name]</h1>
+
+		<p class="desc">كائن مع عدة وظائف مساعدة للرياضيات.</p>
+
+		<h2>الطرق (Methods)</h2>
+	 
+		<h3>
+		[method:Float clamp]( [param:Float value], [param:Float min], [param:Float max] )
+		</h3>
+		<p>
+		[page:Float value] — القيمة التي يتم تثبيتها.<br />
+		[page:Float min] — الحد الأدنى.<br />
+		[page:Float max] — الحد الأقصى.<br /><br />
+	 
+		يثبت[page:Float value ] ليكون بين[page:Float min ] و
+	 [page:Float max ].
+		</p>
+	 
+		<h3>[method:Float degToRad]( [param:Float degrees] )</h3>
+		<p>تحويل الدرجات إلى راديان.</p>
+	 
+		<h3>
+		[method:Integer euclideanModulo]( [param:Integer n], [param:Integer m] )
+		</h3>
+		<p>
+		[page:Integer n]،[page:Integer m ] - أعداد صحيحة<br /><br />
+	 
+		يحسب نمط إقليدي لـ[page:Integer m ] % [page:Integer n ]، هذا
+		هو:
+		<code>( ( n % m ) + m ) % m</code>
+		</p>
+	 
+		<h3>[method:UUID generateUUID]( )</h3>
+		<p>
+		توليد
+	 	[link:https://en.wikipedia.org/wiki/Universally_unique_identifier UUID]
+		(معرف فريد عالميًا).
+		</p>
+	 
+		<h3>[method:Boolean isPowerOfTwo]( [param:Number n] )</h3>
+		<p>يعود بـ`true` إذا كان [page:Number n] قوة لـ2.</p>
+	 
+		<h3>
+		[method:Float inverseLerp]( [param:Float x], [param:Float y], [param:Float value] )
+		</h3>
+		<p>
+		[page:Float x] - نقطة البداية.<br />
+		[page:Float y] - نقطة النهاية.<br />
+		[page:Float value] - قيمة بين البداية والنهاية.<br /><br />
+	 
+		يعود بالنسبة المئوية في الفترة المغلقة `[0، 1]` للقيمة المعطاة
+		بين نقطة البداية والنهاية.
+		</p>
+	 
+		<h3>
+		[method:Float lerp]( [param:Float x], [param:Float y], [param:Float t] )
+		</h3>
+		<p>
+		[page:Float x] - نقطة البداية. <br />
+		[page:Float y] - نقطة النهاية. <br />
+		[page:Float t] - عامل التداخل في الفترة المغلقة `[0، 1]`.<br /><br />
+	 
+		يعود بقيمة[link:https://en.wikipedia.org/wiki/Linear_interpolation متداخلة خطيًا ] 
+		من نقطتين معروفتين بناءً على الفترة المعطاة -
+	 	[page:Float t ] = 0 سيعود بـ[page:Float x ] و[page:Float t ] = 1 سوف
+		يعود بـ[page:Float y ].
+		</p>
+	 
+		<h3>
+		[method:Float damp]( [param:Float x], [param:Float y], [param:Float lambda], [param:Float dt] )
+		</h3>
+		<p>
+		[page:Float x] - نقطة حالية. <br />
+		[page:Float y] - نقطة الهدف. <br />
+		[page:Float lambda] - قيمة lambda أعلى ستجعل الحركة أكثر
+		فجأة، وقيمة أقل ستجعل الحركة أكثر تدرجًا. <br />
+		[page:Float dt] - وقت دلتا بالثواني.<br /><br />
+	 
+		تداخل عدد من[page:Float x ] نحو[page:Float y ] بطريقة
+		ربيعية باستخدام[page:Float dt ] للحفاظ على حركة مستقلة عن معدل
+		الإطارات. للحصول على التفاصيل، راجع
+	 	[link:http://www.rorydriscoll.com/2016/03/07/frame-rate-independent-damping-using-lerp/ تخميد مستقل عن معدل الإطارات باستخدام lerp].
+		</p>
+	 
+
+		<h3>
+			[method:Float mapLinear]( [param:Float x], [param:Float a1], [param:Float a2], [param:Float b1], [param:Float b2] )
+		</h3>
+		<p>
+		[page:Float x] — القيمة التي يتم تعيينها.<br />
+		[page:Float a1] — الحد الأدنى للنطاق A.<br />
+		[page:Float a2] — الحد الأقصى للنطاق A.<br />
+		[page:Float b1] — الحد الأدنى للنطاق B.<br />
+		[page:Float b2] — الحد الأقصى للنطاق B.<br /><br />
+		 
+		تعيين خطي لـ[page:Float x ] من النطاق [[page:Float a1 ], [page:Float a2 ]] إلى النطاق [[page:Float b1 ], [page:Float b2 ]].
+		</p>
+		 
+		<h3>[method:Float pingpong]( [param:Float x], [param:Float length] )</h3>
+		<p>
+		[page:Float x] — القيمة التي يتم تعيينها.<br />
+		[page:Float length] — القيمة الموجبة التي ستتعامل معها الوظيفة.
+		الافتراضي هو 1.<br /><br />
+		 
+		يعود بقيمة تتبادل بين 0 و[param:Float length ].
+		</p>
+		 
+		<h3>[method:Integer ceilPowerOfTwo]( [param:Number n] )</h3>
+		<p>
+		يعود بأصغر قوة من 2 أكبر من أو يساوي
+		[page:Number n ].
+		</p>
+		 
+		<h3>[method:Integer floorPowerOfTwo]( [param:Number n] )</h3>
+		<p>
+		يعود بأكبر قوة من 2 أقل من أو يساوي[page:Number n ].
+		</p>
+		 
+		<h3>[method:Float radToDeg]( [param:Float radians] )</h3>
+		<p>تحويل الراديان إلى درجات.</p>
+		 
+		<h3>[method:Float randFloat]( [param:Float low], [param:Float high] )</h3>
+		<p>عشوائية عائمة في الفترة [[page:Float low ], [page:Float high ]].</p>
+		 
+		<h3>[method:Float randFloatSpread]( [param:Float range] )</h3>
+		<p>
+		عشوائية عائمة في الفترة [-[page:Float range ] / 2،[page:Float range ]
+		/ 2].
+		</p>
+		 
+		<h3>
+		[method:Integer randInt]( [param:Integer low], [param:Integer high] )
+		</h3>
+		<p>عشوائية صحيحة في الفترة [[page:Float low ],[page:Float high ]].</p>
+		 
+		<h3>[method:Float seededRandom]( [param:Integer seed] )</h3>
+		<p>
+		عشوائية زائفة محددة عائمة في الفترة `[0، 1]`. هو اختیاری
+		[page:Integer seed ].
+		</p>
+		 
+		<h3>
+			[method:Float smoothstep]( [param:Float x], [param:Float min], [param:Float max] )
+		</h3>
+		<p>
+		[page:Float x] - القيمة التي يتم تقييمها بناءً على موقعها بين الحد
+		الأدنى والأقصى. <br />
+		[page:Float min] - أي قيمة x أدنى من الحد الأدنى ستكون 0.<br />
+		[page:Float max] - أي قيمة x أعلى من الحد الأقصى ستكون 1.<br /><br />
+		 
+		يعود بقيمة بين 0-1 تمثل النسبة المئوية التي انتقلت فيها x بين الحد
+		الأدنى والأقصى، ولكن تم تجانسها أو تبطئها كلما اقترب X من
+		الحد الأدنى والأقصى.<br /><br />
+		 
+		راجع [link:http://en.wikipedia.org/wiki/Smoothstep Smoothstep] للحصول على التفاصيل.
+		</p>
+		 
+		<h3>
+		[method:Float smootherstep]( [param:Float x], [param:Float min], [param:Float max] )
+		</h3>
+		<p>
+		[page:Float x] - القيمة التي يتم تقييمها بناءً على موقعها بين الحد
+		الأدنى والأقصى. <br />
+		[page:Float min] - أي قيمة x أدنى من الحد الأدنى ستكون 0.<br />
+		[page:Float max] - أي قيمة x أعلى من الحد الأقصى ستكون 1.<br /><br />
+		 
+		يعود بقيمة بين 0-1. تغير على smoothstep
+		يحتوي على مشتقات من الطلب 1st و 2nd صفر في x=0 و x=1.
+		</p>
+		 
+		<h3>
+		[method:undefined setQuaternionFromProperEuler]( [param:Quaternion q], [param:Float a], [param:Float b], [param:Float c], [param:String order] )
+		</h3>
+		<p>
+		[page:Quaternion q] - رباعية لضبطها<br />
+		[page:Float a] - التدوير المطبق على المحور الأول، بالراديان <br />
+		[page:Float b] - التدوير المطبق على المحور الثاني، بالراديان
+		<br />
+		[page:Float c] - التدوير المطبق على المحور الثالث، بالراديان <br />
+		[page:String order] - سلسلة تحدد ترتيب المحاور: 'XYX'، 'XZX'،
+		'YXY'، 'YZY'، 'ZXZ'، أو 'ZYZ'<br /><br />
+		 
+		يضبط رباعية[page:Quaternion q ] من
+		[link:http://en.wikipedia.org/wiki/Euler_angles زوايا أويلر Proper intrinsic ] 
+		المعرفة بزوايا[page:Float a ]،[page:Float b ]، و[page:Float c ]، 
+		والترتیب[page:String order].<br />
+		 
+		يتم تطبیق التدویرات على المحاور بالترتیب المحدد بـ[page:String order]: 
+		يتم تطبیق التدویر بزاویة[page:Float a ] أولًا، ثم بزاویة
+		[page:Float b ]، ثم بزاویة[page:Float c ]. زوایا هی فی رادیان.
+		</p>
+		 
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 282 - 0
docs/api/ar/math/Matrix3.html

@@ -0,0 +1,282 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		<h1>[name]</h1>
+
+		<p class="desc">
+		فئة تمثل 3x3
+		[link:https://en.wikipedia.org/wiki/Matrix_(mathematics) مصفوفة].
+		</p>
+		 
+		<h2>مثال الكود</h2>
+		<code>
+const m = new Matrix3(); 
+		</code>
+		 
+		<h2>ملاحظة حول الترتيب الرئيسي للصف والعمود الرئيسي</h2>
+		<p>
+			يأخذ المنشئ وطريقة [page:set]() الوسائط في
+			[link:https://en.wikipedia.org/wiki/Row-_and_column-major_order#Column-major_order ترتيب الصف الرئيسي]
+			، في حين أنها مخزنة داخليًا في مصفوفة [page:.elements elements]
+			بترتيب العمود الرئيسي.<br /><br />
+		 
+			هذا يعني أن استدعاء
+			<code>
+m.set( 11, 12, 13,
+		21, 22, 23,
+		31, 32, 33 );
+		</code>
+			ستؤدي إلى مصفوفة [page:.elements elements] التي تحتوي على:
+			<code> 
+m.elements = [ 11, 21, 31,
+				12, 22, 32, 
+				13, 23, 33 ];
+			</code>
+			وداخليًا يتم تنفيذ جميع الحسابات باستخدام ترتيب العمود الرئيسي.
+			ومع ذلك ، نظرًا لأن الترتيب الفعلي لا يحدث فرقًا رياضيًا و
+			معظم الناس معتادون على التفكير في المصفوفات بترتيب الصف الرئيسي ، فإن
+			وثائق three.js تظهر المصفوفات بترتيب الصف الرئيسي. فقط تحمل في
+			اذهانك أنه إذا كنت تقرأ التعليمات البرمجية المصدرية ، فستضطر إلى أخذ
+			[link:https://en.wikipedia.org/wiki/Transpose عكس] لأية مصفوفات
+			الموضحة هنا لجعل المحاسبات منطقية.
+		</p>
+		 
+		<h2>المنشئ (Constructor)</h2>
+		 
+		<h3>[name]( [param:Number n11], [param:Number n12], [param:Number n13],
+		[param:Number n21], [param:Number n22], [param:Number n22],
+		[param:Number n31], [param:Number n32], [param:Number n33] )</h3>
+		<p>
+		ينشئ مصفوفة 3x3 بالوسائط المعطاة بترتيب الصف الرئيسي. إذا لم يتم توفير أية وسائط ، يقوم المنشئ بتهيئة
+		[name] إلى مصفوفة هوية 3x3 [link:https://en.wikipedia.org/wiki/Identity_matrix].
+		</p>
+		 
+		<h2>الخصائص (Properties)</h2>
+		 
+		<h3>[property:Array elements]</h3>
+		<p>
+		قائمة [link:https://en.wikipedia.org/wiki/Row-_and_column-major_order بالعمود الرئيسي] من قيم المصفوفة.
+		</p>
+		 
+		<h2>الطرق (Methods)</h2>
+
+		<h3>[method:Matrix3 clone]()</h3>
+		<p>ينشئ Matrix3 جديدًا وبعناصر متطابقة مع هذا.</p>
+	 
+		<h3>[method:this copy]( [param:Matrix3 m] )</h3>
+		<p>ينسخ عناصر المصفوفة [page:Matrix3 m] في هذه المصفوفة.</p>
+	 
+		<h3>[method:Float determinant]()</h3>
+		<p>
+		يحسب ويعيد [link:https://en.wikipedia.org/wiki/Determinant المحدد] لهذه المصفوفة.
+		</p>
+	 
+		<h3>[method:Boolean equals]( [param:Matrix3 m] )</h3>
+		<p>يرجع صحيحًا إذا كانت هذه المصفوفة و [page:Matrix3 m] متساويتين.</p>
+	 
+		<h3>
+		[method:this extractBasis]( [param:Vector3 xAxis], [param:Vector3 yAxis], [param:Vector3 zAxis] )
+		</h3>
+		<p>
+		يستخرج [link:https://en.wikipedia.org/wiki/Basis_(linear_algebra) الأساس]
+		لهذه المصفوفة في ثلاثة متجهات محورية مقدمة. إذا كانت هذه المصفوفة
+		هي:
+		<code>
+	 a, b, c, 
+	 d, e, f, 
+	 g, h, i 
+		</code>
+		ثم سيتم تعيين [page:Vector3 xAxis] ، [page:Vector3 yAxis] ، [page:Vector3 zAxis]
+		إلى:
+		<code>
+	 xAxis = (a, d, g) 
+	 yAxis = (b, e, h) 
+	 zAxis = (c, f, i) 
+		</code>
+		</p>
+	 
+		<h3>
+		[method:this fromArray]( [param:Array array], [param:Integer offset] )
+		</h3>
+		<p>
+		[page:Array array] - المصفوفة التي يتم قراءة العناصر منها.<br />
+		[page:Integer offset] - (اختياري) فهرس العنصر الأول في المصفوفة.
+		الافتراضي هو 0.<br /><br />
+	 
+		يضع عناصر هذه المصفوفة بناءً على مصفوفة في
+		[link:https://en.wikipedia.org/wiki/Row-_and_column-major_order#Column-major_order تنسيق العمود الرئيسي].
+		</p>
+	 
+		<h3>[method:this invert]()</h3>
+		<p>
+		يعكس هذه المصفوفة ، باستخدام
+		[link:https://en.wikipedia.org/wiki/Invertible_matrix#Analytic_solution الطريقة التحليلية].
+		لا يمكنك العكس مع محدد صفر. إذا قمت بمحاولة هذا ، فإن الطريقة تنتج مصفوفة صفرية بدلاً من ذلك.
+		</p>
+	 
+		<h3>[method:this getNormalMatrix]( [param:Matrix4 m] )</h3>
+		<p>
+		[page:Matrix4 m] - [page:Matrix4]<br /><br />
+	 
+		يضع هذه المصفوفة كـ 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].
+		</p>
+	 
+		<h3>[method:this identity]()</h3>
+		<p>
+		يعيد هذه المصفوفة إلى مصفوفة الهوية 3x3:
+		<code> 
+	 1, 0, 0 
+	 0, 1, 0 
+	 0, 0, 1 
+		</code>
+		</p>
+	 
+		<h3>[method:this makeRotation]( [param:Float theta] )</h3>
+		<p>
+		[page:Float theta] - زاوية الدوران بالراديان. تدور القيم الموجبة
+		عكس عقارب الساعة.<br /><br />
+	 
+		يضع هذه المصفوفة كتحول دوران ثنائي الأبعاد بـ [page:Float theta]
+		راديان. المصفوفة الناتجة ستكون:
+		<code>
+	 cos(θ) -sin(θ) 0 
+	 sin(θ) cos(θ) 0 
+	 0 0 1
+		</code>
+		</p>
+	 
+		<h3>[method:this makeScale]( [param:Float x], [param:Float y] )</h3>
+		<p>
+		[page:Float x] - المبلغ الذي يتم قياسه في المحور X.<br />
+		[page:Float y] - المبلغ الذي يتم قياسه في المحور Y.<br />
+	 
+		يضع هذه المصفوفة كتحول قياس ثنائي الأبعاد:
+		<code> 
+	 x, 0, 0, 
+	 0, y, 0, 
+	 0, 0, 1 
+		</code>
+		</p>
+	 
+		<h3>[method:this makeTranslation]( [param:Vector2 v] )</h3>
+		<h3>[method:this makeTranslation]( [param:Float x], [param:Float y] )</h3>
+		<p>
+		[page:Vector2 v] تحويل الترجمة من المتجه.<br />
+		أو<br />
+		[page:Float x] - المبلغ الذي يتم ترجمته في المحور X.<br />
+		[page:Float y] - المبلغ الذي يتم ترجمته في المحور Y.<br />
+	 
+		يضع هذه المصفوفة كتحويل ترجمة ثنائي الأبعاد:
+		<code>
+	 1, 0, x, 
+	 0, 1, y, 
+	 0, 0, 1 
+		</code>
+		</p>
+	 
+		<h3>[method:this multiply]( [param:Matrix3 m] )</h3>
+		<p>يضرب هذه المصفوفة بعد [page:Matrix3 m].</p>
+	 
+		<h3>
+		[method:this multiplyMatrices]( [param:Matrix3 a], [param:Matrix3 b] )
+		</h3>
+		<p>يضع هذه المصفوفة على [page:Matrix3 a] x [page:Matrix3 b].</p>
+	 
+		<h3>[method:this multiplyScalar]( [param:Float s] )</h3>
+		<p>يضرب كل مكون من مكونات المصفوفة بالقيمة العددية *s*.</p>
+	 
+		<h3>[method:this rotate]( [param:Float theta] )</h3>
+		<p>يدور هذه المصفوفة بالزاوية المعطاة (بالراديان).</p>
+	 
+		<h3>[method:this scale]( [param:Float sx], [param:Float sy] )</h3>
+		<p>يقيس هذه المصفوفة بالقيم العددية المعطاة.</p>
+	 
+		<h3>
+		[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] )
+		</h3>
+		<p>
+		[page:Float n11] - القيمة التي يتم وضعها في الصف 1 ، العمود 1.<br />
+		[page:Float n12] - القيمة التي يتم وضعها في الصف 1 ، العمود 2.<br />
+		...<br />
+		...<br />
+		[page:Float n32] - القيمة التي يتم وضعها في الصف 3 ، العمود 2.<br />
+		[page:Float n33] - القيمة التي يتم وضعها في الصف 3 ، العمود 3.<br /><br />
+	 
+		يضع قيم المصفوفة 3x3 على
+		[link:https://en.wikipedia.org/wiki/Row-_and_column-major_order تسلسل قيم رئيسية للصف].
+		</p>
+	 
+		<h3>[method:this premultiply]( [param:Matrix3 m] )</h3>
+		<p>Pre-multiplies this matrix by [page:Matrix3 m].</p>
+	 
+		<h3>[method:this setFromMatrix4]( [param:Matrix4 m] )</h3>
+		<p>
+		قم بتعيين هذه المصفوفة إلى مصفوفة 3x3 العلوية من Matrix4
+	 	[page:Matrix4 m].
+		</p>
+	 
+		<h3>
+		[method:this setUvTransform]( [param:Float tx], [param:Float ty], [param:Float sx], [param:Float sy], [param:Float rotation], [param:Float cx], [param:Float cy] )
+		</h3>
+		<p>
+		[page:Float tx] - الإزاحة x<br />
+		[page:Float ty] - الإزاحة y<br />
+		[page:Float sx] - تكرار x<br />
+		[page:Float sy] - تكرار y<br />
+		[page:Float rotation] - الدوران ، بالراديان. تدور القيم الموجبة
+		عكس عقارب الساعة<br />
+		[page:Float cx] - مركز x للدوران<br />
+		[page:Float cy] - مركز y للدوران<br /><br />
+		 
+		يضع مصفوفة التحويل UV من الإزاحة والتكرار والدوران والمركز.
+		</p>
+		 
+		<h3>
+		[method:Array toArray]( [param:Array array], [param:Integer offset] )
+		</h3>
+		<p>
+		[page:Array array] - (اختياري) مصفوفة لتخزين المتجه الناتج فيها. إذا
+		لم يتم إعطاء مصفوفة جديدة سيتم إنشاؤها.<br />
+		[page:Integer offset] - (اختياري) إزاحة في المصفوفة التي يجب وضعها فيها
+		النتيجة.<br /><br />
+		 
+		يكتب عناصر هذه المصفوفة في مصفوفة في
+		[link:https://en.wikipedia.org/wiki/Row-_and_column-major_order#Column-major_order تنسيق العمود الرئيسي].
+		</p>
+		 
+		<h3>[method:this translate]( [param:Float tx], [param:Float ty] )</h3>
+		<p>يترجم هذه المصفوفة بالقيم العددية المعطاة.</p>
+		 
+		<h3>[method:this transpose]()</h3>
+		<p>
+		[link:https://en.wikipedia.org/wiki/Transpose يعكس] هذه المصفوفة في
+		مكان.
+		</p>
+		 
+		<h3>[method:this transposeIntoArray]( [param:Array array] )</h3>
+		<p>
+		[page:Array array] - مصفوفة لتخزين المتجه الناتج فيها.<br /><br />
+		 
+		[link:https://en.wikipedia.org/wiki/Transpose يعكس] هذه المصفوفة في
+		المصفوفة الموردة ، ويرجع نفسه دون تغيير.
+		</p>
+		 
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 493 - 0
docs/api/ar/math/Matrix4.html

@@ -0,0 +1,493 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		<h1>[name]</h1>
+
+		<p class="desc">
+		فئة تمثل 4x4
+		[link:https://en.wikipedia.org/wiki/Matrix_(mathematics) matrix].<br /><br />
+		 
+		أكثر استخدامات مصفوفة 4x4 شيوعًا في الرسومات الحاسوبية ثلاثية الأبعاد هي كـ
+		[link:https://en.wikipedia.org/wiki/Transformation_matrix Transformation Matrix]. 
+		لمقدمة عن مصفوفات التحول كما هو مستخدم في WebGL ،
+		تحقق من
+		[link:http://www.opengl-tutorial.org/beginners-tutorials/tutorial-3-matrices هذا البرنامج التعليمي].<br /><br />
+		 
+		يسمح هذا لـ[page:Vector3] يمثل نقطة في الفضاء ثلاثي الأبعاد بالخضوع
+		التحولات مثل الترجمة والدوران والقص والتحجيم والانعكاس و
+		الإسقاط المتعامد أو المنظور وهكذا ، عن طريق ضربه بـ
+		المصفوفة. يُعرف هذا باسم `تطبيق` المصفوفة على المتجه. <br /><br />
+		 
+		كل [page:Object3D] لديه ثلاث Matrix4s مرتبطة:
+		</p>
+		<ul>
+			<li>
+			[page:Object3D.matrix]: يخزن هذا التحول المحلي للكائن.
+			هذا هو تحول الكائن نسبةً إلى والده.
+			</li>
+			<li>
+			[page:Object3D.matrixWorld]: التحول العالمي أو العالمي لـ
+			الكائن. إذا لم يكن للكائن والد ، فإن هذا مطابق للتحول المحلي
+			المخزن في [page:Object3D.matrix matrix].
+			</li>
+			<li>
+			[page:Object3D.modelViewMatrix]: يمثل هذا تحول الكائن
+			نسبةً إلى نظام إحداثيات الكاميرا. مصفوفة modelViewMatrix للكائن هي
+			matrixWorld للكائن مضروبًا بـ
+			matrixWorldInverse للكاميرا.
+			</li>
+		</ul>
+		 
+		[page:Camera Cameras] لديها ثلاث Matrix4s إضافية:
+		<ul>
+			<li>
+			[page:Camera.matrixWorldInverse]: مصفوفة العرض - عكس
+			Camera's [page:Object3D.matrixWorld matrixWorld].
+			</li>
+			<li>
+			[page:Camera.projectionMatrix]: يمثل المعلومات حول كيفية
+			إسقاط المشهد على مسافة قص.
+			</li>
+			<li>
+			[page:Camera.projectionMatrixInverse]: عكس projectionMatrix.
+			</li>
+		</ul>
+		 
+		ملاحظة: [page:Object3D.normalMatrix] ليست Matrix4 ، ولكنها [page:Matrix3].
+
+		<h2>ملاحظة حول ترتيب الصف الرئيسي والعمود الرئيسي</h2>
+		<p>
+		يأخذ الباني وطريقة [page:set]() المعاملات في
+		[link:https://en.wikipedia.org/wiki/Row-_and_column-major_order#Column-major_order row-major] 
+		ترتيب ، في حين يتم تخزينها داخليًا في مصفوفة [page:.elements elements] بترتيب العمود الرئيسي. <br /><br />
+	 
+		هذا يعني أن الاتصال
+		<code>
+	 const m = new THREE.Matrix4(); 
+	 m.set( 11، 12، 13، 14، 
+		21، 22، 23، 24,
+		31، 32، 33، 34، 
+		41، 42، 43، 44 );
+		</code>
+		ستؤدي إلى مصفوفة [page:.elements elements] التي تحتوي على:
+		<code>
+	 m.elements = [ 11, 21, 31, 41, 
+		12, 22, 32, 42, 
+		13, 23, 33, 43, 
+		14, 24, 34, 44 ];
+		</code>
+		وداخليًا يتم إجراء جميع الحسابات باستخدام ترتيب العمود الرئيسي.
+		ومع ذلك ، نظرًا لأن الترتيب الفعلي لا يحدث فرقًا رياضيًا و
+		معظم الناس معتادون على التفكير في المصفوفات بترتيب الصف الرئيسي ،
+		توثق three.js المصفوفات بترتيب الصف الرئيسي. فقط تذكر أنه إذا كنت
+		قراءة شفرة المصدر ، ستضطر إلى أخذ
+		[link:https://en.wikipedia.org/wiki/Transpose transpose] من أية مصفوفات
+		الموضح هنا لجعل المحاسبات منطقية.
+		</p>
+	 
+
+		<h2>استخراج الموضع والدوران والمقياس</h2>
+		<p>
+		هناك العديد من الخيارات المتاحة لاستخراج الموضع والدوران و
+		المقياس من Matrix4.
+		</p>
+		<ul>
+			<li>
+			[page:Vector3.setFromMatrixPosition]: يمكن استخدامه لاستخراج
+			مكون الترجمة.
+			</li>
+			<li>
+			[page:Vector3.setFromMatrixScale]: يمكن استخدامه لاستخراج المقياس
+			مكون.
+			</li>
+			<li>
+			[page:Quaternion.setFromRotationMatrix] ،
+			[page:Euler.setFromRotationMatrix] أو [page:.extractRotation extractRotation] 
+			يمكن استخدامه لاستخراج مكون الدوران من مصفوفة نقية (غير متساوية القياس).
+			</li>
+			<li>
+			[page:.decompose decompose] يمكن استخدامه لاستخراج الموضع والدوران
+			والمقياس كلهم في آن واحد.
+			</li>
+		</ul>
+	 
+		<h2>المنشئ (Constructor)</h2>
+	 
+		<h3>[name]( [param:Number n11], [param:Number n12], [param:Number n13], [param:Number n14],
+		[param:Number n21], [param:Number n22], [param:Number n23], [param:Number n24],
+		[param:Number n31], [param:Number n32], [param:Number n33], [param:Number n34],
+		[param:Number n41], [param:Number n42], [param:Number n43], [param:Number n44] )</h3>
+	 
+		<p>
+		ينشئ مصفوفة 4x4 بالمعاملات المعطاة بترتيب الصف. إذا لم يتم توفير أي معاملات ، فإن الباني يقوم بتهيئة 
+		الـ[name] إلى مصفوفة 4x4[link:https://en.wikipedia.org/wiki/Identity_matrix identity matrix].
+		</p>
+	 
+		<h2>الخصائص (Properties)</h2>
+	 
+		<h3>[property:Array elements]</h3>
+		<p>
+		قائمة
+		[link:https://en.wikipedia.org/wiki/Row-_and_column-major_order#Column-major_order column-major] من قيم المصفوفة.
+		</p>
+	 
+		<h2>الطرق (Methods)</h2>
+	 
+		<h3>[method:Matrix4 clone]()</h3>
+		<p>
+		ينشئ Matrix4 جديدًا بـ[page:.elements elements] متطابقة لهذه
+		واحد.
+		</p>
+	 
+		<h3>
+		[method:this compose]( [param:Vector3 position], [param:Quaternion quaternion], [param:Vector3 scale] )
+		</h3>
+		<p>
+		يضع هذه المصفوفة على التحول المكون من[page:Vector3 position] ، 
+		[page:Quaternion quaternion] و[page:Vector3 scale].
+		</p>
+	 
+
+		<h3>[method:this copy]( [param:Matrix4 m] )</h3>
+		<p>
+		ينسخ [page:.elements elements] من المصفوفة [page:Matrix4 m] في هذه
+		المصفوفة.
+		</p>
+	 
+		<h3>[method:this copyPosition]( [param:Matrix4 m] )</h3>
+		<p>
+		ينسخ مكون الترجمة من المصفوفة المعطاة [page:Matrix4 m]
+		في مكون الترجمة لهذه المصفوفة.
+		</p>
+	 
+		<h3>
+		[method:this decompose]( [param:Vector3 position], [param:Quaternion quaternion], [param:Vector3 scale] )
+		</h3>
+		<p>
+		يقوم بتحليل هذه المصفوفة إلى مكوناتها[page:Vector3 position] ،[page:Quaternion quaternion] 
+		و[page:Vector3 scale].<br /><br />
+		ملاحظة: ليست جميع المصفوفات قابلة للتحليل بهذه الطريقة. على سبيل المثال ، إذا كان
+		كائن لديه والد غير متساوي القياس ، فقد لا تكون مصفوفة العالم الخاصة بالكائن
+		قابلة للتحليل ، وقد لا تكون هذه الطريقة مناسبة.
+		</p>
+	 
+		<h3>[method:Float determinant]()</h3>
+		<p>
+		يحسب ويعيد[link:https://en.wikipedia.org/wiki/Determinant determinant] لهذه المصفوفة. <br /><br />
+	 
+		بناءً على الطريقة المبينة
+		[link:http://www.euclideanspace.com/maths/algebra/matrix/functions/inverse/fourD/index.html هنا].
+		</p>
+	 
+		<h3>[method:Boolean equals]( [param:Matrix4 m] )</h3>
+		<p>يرجع صحيحًا إذا كانت هذه المصفوفة و[page:Matrix4 m] متساويتين.</p>
+	 
+		<h3>
+		[method:this extractBasis]( [param:Vector3 xAxis], [param:Vector3 yAxis], [param:Vector3 zAxis] )
+		</h3>
+		<p>
+		يستخرج[link:https://en.wikipedia.org/wiki/Basis_(linear_algebra) basis] 
+		من هذه المصفوفة في المتجهات الثلاثة المحورية المقدمة. إذا كانت هذه المصفوفة
+		:
+		<code>
+	 a، b، c، d، 
+	 e، f، g، h، 
+	 i، j، k، l، 
+	 m، n، o، p 
+		</code>
+		ثم سيتم تعيين[page:Vector3 xAxis] ،[page:Vector3 yAxis] ،[page:Vector3 zAxis]
+		إلى:
+		<code>
+	 xAxis = (a, e, i) 
+	 yAxis = (b, f, j) 
+	 zAxis = (c, g, k) 
+		</code>
+		</p>
+
+		<h3>[method:this extractRotation]( [param:Matrix4 m] )</h3>
+		<p>
+		يستخرج مكون الدوران من المصفوفة المعطاة [page:Matrix4 m]
+		في مكون الدوران لهذه المصفوفة.
+		</p>
+	 
+		<h3>
+		[method:this fromArray]( [param:Array array], [param:Integer offset] )
+		</h3>
+		<p>
+		[page:Array array] - المصفوفة التي يتم قراءة العناصر منها. <br />
+		[page:Integer offset] - (اختياري) إزاحة في المصفوفة. الافتراضي هو
+		0. <br /><br />
+	 
+		يضع عناصر هذه المصفوفة بناءً على [page:Array array] في
+		[link:https://en.wikipedia.org/wiki/Row-_and_column-major_order#Column-major_order column-major] تنسيق.
+		</p>
+	 
+		<h3>[method:this invert]()</h3>
+		<p>
+		يعكس هذه المصفوفة ، باستخدام
+		[link:https://en.wikipedia.org/wiki/Invertible_matrix#Analytic_solution الطريقة التحليلية]. 
+		لا يمكنك عكس مع محدد صفر. إذا
+		حاولت ذلك ، فإن الطريقة تنتج مصفوفة صفرية بدلاً من ذلك.
+		</p>
+	 
+		<h3>[method:Float getMaxScaleOnAxis]()</h3>
+		<p>يحصل على أقصى قيمة مقياس للمحاور الثلاثة.</p>
+	 
+		<h3>[method:this identity]()</h3>
+		<p>
+		يعيد تعيين هذه المصفوفة إلى
+		[link:https://en.wikipedia.org/wiki/Identity_matrix مصفوفة الهوية].
+		</p>
+	 
+		<h3>
+		[method:this lookAt]( [param:Vector3 eye], [param:Vector3 target], [param:Vector3 up] )
+		</h3>
+		<p>
+		يبني مصفوفة دوران ، تبحث من[page:Vector3 eye] نحو
+		[page:Vector3 target] متجهًا بالمتجه[page:Vector3 up].
+		</p>
+	 
+		<h3>
+		[method:this makeRotationAxis]( [param:Vector3 axis], [param:Float theta] )
+		</h3>
+		<p>
+		[page:Vector3 axis] - محور الدوران ، يجب تطبيعه. <br />
+		[page:Float theta] - زاوية الدوران بالراديان. <br /><br />
+	 
+		يضع هذه المصفوفة كتحويل دوران حول[page:Vector3 axis] بـ
+		[page:Float theta] راديان. <br />
+	 
+		هذا بديل مثير للجدل نوعًا ما ولكنه صحيح رياضيًا للدوران عبر[page:Quaternion Quaternions]. انظر المناقشة
+		[link:https://www.gamedev.net/articles/programming/math-and-physics/do-we-really-need-quaternions-r1199 هنا].
+		</p>
+	 
+		<h3>
+			[method:this makeBasis]( [param:Vector3 xAxis], [param:Vector3 yAxis], [param:Vector3 zAxis] )
+		</h3>
+		<p>
+		قم بتعيين هذا إلى [link:https://en.wikipedia.org/wiki/Basis_(linear_algebra) basis] 
+		مصفوفة تتكون من المتجهات الأساسية الثلاثة المقدمة:
+		<code>
+		xAxis.x، yAxis.x، zAxis.x، 0، 
+		xAxis.y، yAxis.y، zAxis.y، 0، 
+		xAxis.z، yAxis.z، zAxis.z، 0، 
+		0, 		0, 		0, 	   1
+		</code>
+		</p>
+		 
+		<h3>
+		[method:this makePerspective]( [param:Float left], [param:Float right], [param:Float top], [param:Float bottom], [param:Float near], [param:Float far] )
+		</h3>
+		<p>
+		ينشئ
+		[link:https://en.wikipedia.org/wiki/3D_projection#Perspective_projection perspective projection] 
+		مصفوفة. يتم استخدام هذا داخليًا بواسطة
+		[page:PerspectiveCamera.updateProjectionMatrix]()
+		</p>
+		 
+		<h3>
+		[method:this makeOrthographic]( [param:Float left], [param:Float right], [param:Float top], [param:Float bottom], [param:Float near], [param:Float far] )
+		</h3>
+		<p>
+		ينشئ مصفوفة اسقاط متعامدة[link:https://en.wikipedia.org/wiki/Orthographic_projection orthographic projection]. يتم استخدام هذا داخليًا بواسطة
+		[page:OrthographicCamera.updateProjectionMatrix]().
+		</p>
+		 
+		<h3>[method:this makeRotationFromEuler]( [param:Euler euler] )</h3>
+		<p>
+		يضع مكون الدوران (المصفوفة العلوية اليسرى 3x3) من هذه المصفوفة على
+		الدوران المحدد بالزاوية المعطاة[page:Euler Euler Angle]. باقي
+		المصفوفة يتم تعيينها على المعرف. اعتمادًا على[page:Euler.order order] 
+		من[page:Euler euler] ، هناك ست نتائج محتملة. راجع
+		[link:https://en.wikipedia.org/wiki/Euler_angles#Rotation_matrix هذه الصفحة] للحصول على قائمة كاملة.
+		</p>
+		 
+		<h3>[method:this makeRotationFromQuaternion]( [param:Quaternion q] )</h3>
+		<p>
+		يضع مكون الدوران من هذه المصفوفة على الدوران المحدد بـ
+		[page:Quaternion q] ، كما هو مبين
+		[link:https://en.wikipedia.org/wiki/Rotation_matrix#Quaternion هنا]. ال
+		باقي من المصفوفة يتم تعيينه إلى المعرف. لذلك ، بالنظر إلى[page:Quaternion q] =
+		w + xi + yj + zk ، فإن المصفوفة الناتجة ستكون:
+		<code>
+1-2y²-2z² 	2xy-2zw 	2xz+2yw 	0 
+2xy+2zw   	1-2x²-2z² 	2yz-2xw 	0 
+2xz-2yw   	2yz+2xw   	1-2x²-2y²   0
+	0 			0	 		0 		1
+			</code>
+		</p>
+
+		<h3>[method:this makeRotationX]( [param:Float theta] )</h3>
+		<p>
+		[page:Float theta] - زاوية الدوران بالراديان. <br /><br />
+	 
+		يضع هذه المصفوفة كتحويل دوران حول محور X بواسطة
+		[page:Float theta] (&theta;) راديان. المصفوفة الناتجة ستكون:
+		<code>
+1 		0	 		0 			0 
+0 	cos(&theta;) -sin(&theta;) 	0 
+0 	sin(&theta;) cos(&theta;) 	0 
+0 		0			0 			1
+		</code>
+		</p>
+	 
+		<h3>[method:this makeRotationY]( [param:Float theta] )</h3>
+		<p>
+		[page:Float theta] - زاوية الدوران بالراديان. <br /><br />
+	 
+		يضع هذه المصفوفة كتحويل دوران حول محور Y بواسطة
+		[page:Float theta] (&theta;) راديان. المصفوفة الناتجة ستكون:
+		<code>
+		cos(&theta;) 0 sin(&theta;) 0 0 1 0 0 -sin(&theta;) 0 cos(&theta;) 0 0 0
+		0 1
+		</code>
+		</p>
+	 
+		<h3>[method:this makeRotationZ]( [param:Float theta] )</h3>
+		<p>
+		[page:Float theta] - زاوية الدوران بالراديان. <br /><br />
+	 
+		يضع هذه المصفوفة كتحويل دوران حول محور Z بواسطة
+		[page:Float theta] (&theta;) راديان. المصفوفة الناتجة ستكون:
+		<code>
+cos(&theta;) -sin(&theta;) 0 0 
+sin(&theta;) cos(&theta;)  0 0 
+0 		0 	1   0 
+0 		0	0   1
+				</code>
+		</p>
+	 
+		<h3>
+		[method:this makeScale]( [param:Float x], [param:Float y], [param:Float z] )
+		</h3>
+		<p>
+		[page:Float x] - المقدار الذي يجب تغييره في محور X. <br />
+		[page:Float y] - المقدار الذي يجب تغييره في محور Y. <br />
+		[page:Float z] - المقدار الذي يجب تغييره في محور Z. <br /><br />
+	 
+		يضع هذه المصفوفة كتحويل قياس:
+		<code>
+	 x، 0، 0، 0، 
+	 0، y، 0، 0، 
+	 0، 0، z، 0، 
+	 0، 0، 0، 1 
+		</code>
+		</p>
+	 
+		<h3>
+		[method:this makeShear]( [param:Float xy], [param:Float xz], [param:Float yx], 
+		[param:Float yz], [param:Float zx], [param:Float zy] )
+		</h3>
+		<p>
+		[page:Float xy] - المقدار الذي يجب قصه X بواسطة Y. <br />
+		[page:Float xz] - المقدار الذي يجب قصه X بواسطة Z. <br />
+		[page:Float yx] - المقدار الذي يجب قصه Y بواسطة X. <br />
+		[page:Float yz] - المقدار الذي يجب قصه Y بواسطة Z. <br />
+		[page:Float zx] - المقدار الذي يجب قصه Z بواسطة X. <br />
+		[page:Float zy] - المقدار الذي يجب قصه Z بواسطة Y. <br /><br />
+		 
+		يضع هذه المصفوفة كتحويل قص:
+		<code> 
+		1، yx، zx، 0، 
+		xy، 1، zy، 0، 
+		xz، yz، 1، 0، 
+		0، 0، 0، 1 </code>
+		</p>
+		 
+		<h3>[method:this makeTranslation]( [param:Vector3 v] )</h3>
+		<h3>
+		[method:this makeTranslation]( [param:Float x], [param:Float y], [param:Float z] ) // واجهة برمجة التطبيقات الاختيارية
+		</h3>
+		<p>
+		يضع هذه المصفوفة كتحويل ترجمة من متجه [page:Vector3 v] ، أو أرقام [page:Float x] ، [page:Float y] و [page:Float z]:
+		<code> 
+		1، 0، 0، x، 
+		0، 1، 0، y، 
+		0، 0، 1، z، 
+		0، 0، 0، 1 </code>
+		</p>
+		 
+		<h3>[method:this multiply]( [param:Matrix4 m] )</h3>
+		<p>تعدل هذه المصفوفة بعد ضربها بـ[page:Matrix4 m].</p>
+		 
+		<h3>
+		[method:this multiplyMatrices]( [param:Matrix4 a], [param:Matrix4 b] )
+		</h3>
+		<p>يضع هذه المصفوفة على[page:Matrix4 a] x[page:Matrix4 b].</p>
+		 
+		<h3>[method:this multiplyScalar]( [param:Float s] )</h3>
+		<p>
+		يضرب كل مكون من مكونات المصفوفة بقيمة مقياسية[page:Float s].
+		</p>
+		 
+		<h3>[method:this premultiply]( [param:Matrix4 m] )</h3>
+		<p>تعدل هذه المصفوفة قبل ضربها بـ[page:Matrix4 m].</p>
+		 
+		<h3>[method:this scale]( [param:Vector3 v] )</h3>
+		<p>يضرب أعمدة هذه المصفوفة بالمتجه[page:Vector3 v].</p>
+		 
+		<h3>
+		[method:this set]( [param:Float n11], [param:Float n12], [param:Float n13], [param:Float n14], [param:Float n21], [param:Float n22], [param:Float n23], [param:Float n24], [param:Float n31], [param:Float n32], [param:Float n33], [param:Float n34], [param:Float n41], [param:Float n42], [param:Float n43], [param:Float n44] )
+		</h3>
+		<p>
+		قم بتعيين عناصر المصفوفة الخاصة بك إلى القيم الموردة بترتيب الصف الرئيسي
+		قيم [page:Float n11] ، [page:Float n12] ، ... [page:Float n44].
+		</p>
+		 
+		<h3>[method:this setFromMatrix3]( [param:Matrix3 m] )</h3>
+		<p>
+		قم بتعيين عناصر 3x3 العلوية لهذه المصفوفة إلى قيم Matrix3
+		[page:Matrix3 m].
+		</p>
+		 
+		<h3>[method:this setPosition]( [param:Vector3 v] )</h3>
+		<h3>
+		[method:this setPosition]( [param:Float x], [param:Float y], [param:Float z] ) // واجهة برمجة تطبيقات اختيارية
+		</h3>
+		<p>
+		يضع مكون الموضع لهذه المصفوفة من المتجه [page:Vector3 v] ،
+		دون التأثير على بقية المصفوفة - أي إذا كانت المصفوفة هي
+		حاليا:
+		<code>
+		a, b, c, d, 
+		e, f, g, h, 
+		i, j, k, l, 
+		m, n, o, p </code>
+		هذا يصبح:
+		<code>
+		a, b, c, v.x, 
+		e, f, g, v.y, 
+		i, j, k, v.z, 
+		m, n, o, p </code>
+		</p>
+		 
+		<h3>
+		[method:Array toArray]( [param:Array array], [param:Integer offset] )
+		</h3>
+		<p>
+		[page:Array array] - (اختياري) مصفوفة لتخزين المتجه الناتج فيها.<br />
+		[page:Integer offset] - (اختياري) إزاحة في المصفوفة التي يجب وضعها فيها
+		النتيجة.<br /><br />
+		 
+		يكتب عناصر هذه المصفوفة في مصفوفة في
+		[link:https://en.wikipedia.org/wiki/Row-_and_column-major_order#Column-major_order تنسيق العمود الرئيسي].
+		</p>
+		 
+		<h3>[method:this transpose]()</h3>
+		<p>
+		[link:https://en.wikipedia.org/wiki/Transpose يعكس] هذه المصفوفة.
+		</p>
+
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 208 - 0
docs/api/ar/math/Plane.html

@@ -0,0 +1,208 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		<h1>[name]</h1>
+
+		<p class="desc">
+		سطح ثنائي الأبعاد يمتد إلى ما لا نهاية في الفضاء ثلاثي الأبعاد ، ممثلًا
+		في [link:http://mathworld.wolfram.com/HessianNormalForm.html Hessian normal form] 
+		بواسطة متجه طبيعي ذو طول وحدة وثابت.
+		</p>
+		 
+		<h2>المنشئ (Constructor)</h2>
+		 
+		<h3>[name]( [param:Vector3 normal], [param:Float constant] )</h3>
+		<p>
+		[page:Vector3 normal] - (اختياري) وحدة طول[page:Vector3] تحدد
+		الطبيعي للطائرة. الافتراضي هو `(1، 0، 0)`. <br />
+		[page:Float constant] - (اختياري) المسافة الموقعة من المنشأ إلى
+		الطائرة. الافتراضي هو `0`.
+		</p>
+		 
+		<h2>الخصائص (Properties)</h2>
+		 
+		<h3>[property:Boolean isPlane]</h3>
+		<p>علامة للقراءة فقط للتحقق مما إذا كان كائنًا معينًا من نوع [name].</p>
+		 
+		<h3>[property:Vector3 normal]</h3>
+		 
+		<h3>[property:Float constant]</h3>
+		 
+		<h2>الطرق (Methods)</h2>
+		 
+		<h3>
+		[method:this applyMatrix4]( [param:Matrix4 matrix], [param:Matrix3 optionalNormalMatrix] )
+		</h3>
+		<p>
+		[page:Matrix4 matrix] - الـ[Page:Matrix4] للتطبيق. <br />
+		[page:Matrix3 optionalNormalMatrix] - (اختياري) محسوب مسبقًا عادي
+		[Page:Matrix3] من Matrix4 قيد التطبيق. <br /><br />
+		 
+		تطبيق Matrix4 على الطائرة. يجب أن تكون المصفوفة تحولًا متجانسًا ومتجانسًا.
+		<br />
+		إذا كنت تزود بـ[page:Matrix3 optionalNormalMatrix] ، فيمكن إنشاؤه
+		هكذا:
+		<code>
+		const optionalNormalMatrix = new THREE.Matrix3().getNormalMatrix( matrix );
+		</code>
+		</p>
+
+		<h3>[method:Plane clone]()</h3>
+		<p>
+		يعيد طائرة جديدة بنفس [page:.normal normal] و
+		[page:.constant constant] كهذا.
+		</p>
+	 
+		<h3>[method:Vector3 coplanarPoint]( [param:Vector3 target] )</h3>
+		<p>
+		[page:Vector3 target] - سيتم نسخ النتيجة في هذا Vector3. <br /><br />
+	 
+		يعيد[page:Vector3] متعامدًا على الطائرة ، عن طريق حساب
+		إسقاط المتجه الطبيعي في المنشأ على الطائرة.
+		</p>
+	 
+		<h3>[method:this copy]( [param:Plane plane] )</h3>
+		<p>
+		ينسخ قيم خصائص [page:.normal normal] و[page:.constant constant]
+		للطائرة الممر إلى هذه الطائرة.
+		</p>
+	 
+		<h3>[method:Float distanceToPoint]( [param:Vector3 point] )</h3>
+		<p>
+		يعود بالمسافة الموقعة من[page:Vector3 point] إلى الطائرة.
+		</p>
+	 
+		<h3>[method:Float distanceToSphere]( [param:Sphere sphere] )</h3>
+		<p>
+		يعود بالمسافة الموقعة من[page:Sphere sphere] إلى الطائرة.
+		</p>
+	 
+		<h3>[method:Boolean equals]( [param:Plane plane] )</h3>
+		<p>
+		يتحقق لمعرفة ما إذا كانت طائرتان متساويتين (خصائصهما [page:.normal normal] و
+		[page:.constant constant] تتطابق).
+		</p>
+
+		<h3>
+		[method:Vector3 intersectLine]( [param:Line3 line], [param:Vector3 target] )
+		</h3>
+		<p>
+		[page:Line3 line] - الـ[page:Line3] للتحقق من التقاطع. <br />
+		[page:Vector3 target] - سيتم نسخ النتيجة في هذا Vector3. <br /><br />
+		 
+		يعيد نقطة التقاطع للخط الممر والطائرة. يعود
+		فارغ إذا لم يتقاطع الخط. يعود نقطة البداية للخط إذا كان
+		الخط متعامد مع الطائرة.
+		</p>
+		 
+		<h3>[method:Boolean intersectsBox]( [param:Box3 box] )</h3>
+		<p>
+		[page:Box3 box] - الـ[page:Box3] للتحقق من التقاطع. <br /><br />
+		 
+		يحدد ما إذا كانت هذه الطائرة تتقاطع مع[page:Box3 box].
+		</p>
+		 
+		<h3>[method:Boolean intersectsLine]( [param:Line3 line] )</h3>
+		<p>
+		[page:Line3 line] - الـ[page:Line3] للتحقق من التقاطع. <br /><br />
+		 
+		يختبر ما إذا كان قطع الخط يتقاطع مع (يمر عبر) الطائرة.
+		</p>
+		 
+		<h3>[method:Boolean intersectsSphere]( [param:Sphere sphere] )</h3>
+		<p>
+		[page:Sphere sphere] - الـ[page:Sphere] للتحقق من التقاطع. <br /><br />
+		 
+		يحدد ما إذا كانت هذه الطائرة تتقاطع مع[page:Sphere sphere].
+		</p>
+		 
+		<h3>[method:this negate]()</h3>
+		<p>ينفي كلاً من المتجه الطبيعي والثابت.</p>
+		 
+		<h3>[method:this normalize]()</h3>
+		<p>
+		يسوي المتجه[page:.normal normal] ، ويضبط
+		قيمة[page:.constant constant] بشكل ملائم.
+		</p>
+		 
+		<h3>
+		[method:Vector3 projectPoint]( [param:Vector3 point], [param:Vector3 target] )
+		</h3>
+		<p>
+		[page:Vector3 point] - الـ[page:Vector3] للإسقاط على الطائرة. <br />
+		[page:Vector3 target] - سيتم نسخ النتيجة في هذا Vector3. <br /><br />
+		 
+		يسقط نقطة[page:Vector3 point] على الطائرة.
+		</p>
+
+		<h3>[method:this set]( [param:Vector3 normal], [param:Float constant] )</h3>
+		<p>
+		[page:Vector3 normal] - وحدة طول [page:Vector3] تحدد الطبيعي
+		من الطائرة. <br />
+		[page:Float constant] - المسافة الموقعة من المنشأ إلى الطائرة.
+		الافتراضي هو `0`. <br /><br />
+	 
+		يضع خصائص [page:.normal normal] و[page:.constant constant]
+		لهذه الطائرة عن طريق نسخ القيم من الطبيعي المعطى.
+		</p>
+	 
+		<h3>
+		[method:this setComponents]( [param:Float x], [param:Float y], [param:Float z], [param:Float w] )
+		</h3>
+		<p>
+		[page:Float x] - قيمة x للمتجه الطبيعي ذو الطول الوحدة. <br />
+		[page:Float y] - قيمة y للمتجه الطبيعي ذو الطول الوحدة. <br />
+		[page:Float z] - قيمة z للمتجه الطبيعي ذو الطول الوحدة. <br />
+		[page:Float w] - قيمة خاصية [page:.constant constant]
+		للطائرة. <br /><br />
+	 
+		قم بتعيين المكونات الفردية التي تحدد الطائرة.
+		</p>
+	 
+		<h3>
+		[method:this setFromCoplanarPoints]( [param:Vector3 a], [param:Vector3 b], [param:Vector3 c] )
+		</h3>
+		<p>
+		[page:Vector3 a] - أول نقطة على الطائرة. <br />
+		[page:Vector3 b] - نقطة ثانية على الطائرة. <br />
+		[page:Vector3 c] - نقطة ثالثة على الطائرة. <br /><br />
+	 
+		يحدد الطائرة بناءً على 3 نقاط مقدمة. يفترض أن تكون ترتيب التغليف
+		عكس عقارب الساعة ، وتحدد اتجاه
+		[page:.normal normal].
+		</p>
+	 
+		<h3>
+		[method:this setFromNormalAndCoplanarPoint]( [param:Vector3 normal], [param:Vector3 point] )
+		</h3>
+		<p>
+		[page:Vector3 normal] - وحدة طول[page:Vector3] تحدد الطبيعي
+		من الطائرة. <br />
+		[page:Vector3 point] -[page:Vector3]<br /><br />
+	 
+		يضع خصائص الطائرة كما هو محدد بـ[page:Vector3 normal] و
+		نقطة متعامدية عشوائية[page:Vector3 point].
+		</p>
+	 
+		<h3>[method:this translate]( [param:Vector3 offset] )</h3>
+		<p>
+		[page:Vector3 offset] - المسافة التي يجب تحريك الطائرة بها. <br /><br />
+	 
+		يترجم الطائرة بالمسافة التي يحددها متجه[page:Vector3 offset]
+		. لاحظ أن هذا يؤثر فقط على ثابت الطائرة ولن يؤثر
+		المتجه الطبيعي.
+		</p>
+	 
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 322 - 0
docs/api/ar/math/Quaternion.html

@@ -0,0 +1,322 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		<h1>[name]</h1>
+
+		<p class="desc">
+		تنفيذ [link:http://en.wikipedia.org/wiki/Quaternion كواترنيون].<br />
+		يتم استخدام الكواترنيونات في three.js لتمثيل
+		[link:https://en.wikipedia.org/wiki/Quaternions_and_spatial_rotation الدوران].
+		</p>
+		 
+		<p>
+		التكرار عبر مثيل [name] سيعطي مكوناته (x، y، z، w)
+		بالترتيب المقابل.
+		</p>
+		 
+		<h2>مثال الكود</h2>
+		 
+		<code>
+		const quaternion = new THREE.Quaternion();
+		quaternion.setFromAxisAngle( new THREE.Vector3( 0, 1, 0 ), Math.PI / 2 );
+		 
+		const vector = new THREE.Vector3( 1, 0, 0 );
+		vector.applyQuaternion( quaternion );
+		</code>
+		 
+		<h2>المنشئ (Constructor)</h2>
+		 
+		<h3>
+		[name]( [param:Float x], [param:Float y], [param:Float z], [param:Float w] )
+		</h3>
+		<p>
+		[page:Float x] - إحداثية x<br />
+		[page:Float y] - إحداثية y<br />
+		[page:Float z] - إحداثية z<br />
+		[page:Float w] - إحداثية w
+		</p>
+		 
+		<h2>الخصائص (Properties)</h2>
+		 
+		<h3>[property:Boolean isQuaternion]</h3>
+		<p>علامة للقراءة فقط للتحقق مما إذا كان الكائن المعطى هو من نوع [name].</p>
+		 
+		<h3>[property:Float x]</h3>
+		 
+		<h3>[property:Float y]</h3>
+		 
+		<h3>[property:Float z]</h3>
+		 
+		<h3>[property:Float w]</h3>
+		 
+		<h2>الطرق (Methods)</h2>
+
+		<h3>[method:Float angleTo]( [param:Quaternion q] )</h3>
+		<p>
+		يعيد الزاوية بين هذا الكواترنيون وكواترنيون [page:Quaternion q] بالراديان.
+		</p>
+	 
+		<h3>[method:Quaternion clone]()</h3>
+		<p>
+		ينشئ كواترنيون جديدًا بخصائص [page:.x x] و [page:.y y] و [page:.z z] 
+		و [page:.w w] متطابقة مع هذا.
+		</p>
+	 
+		<h3>[method:this conjugate]()</h3>
+		<p>
+		يعيد التجانس الدوراني لهذا الكواترنيون. التجانس لـ
+		كواترنيون يمثل نفس الدوران في الاتجاه المعاكس حول
+		محور الدوران.
+		</p>
+	 
+		<h3>[method:this copy]( [param:Quaternion q] )</h3>
+		<p>
+		ينسخ خصائص [page:.x x] و [page:.y y] و [page:.z z] و [page:.w w]
+		من [page:Quaternion q] إلى هذا الكواترنيون.
+		</p>
+	 
+		<h3>[method:Boolean equals]( [param:Quaternion v] )</h3>
+		<p>
+		[page:Quaternion v] - كواترنيون سيتم مقارنة هذا الكواترنيون
+		إليه.<br /><br />
+	 
+		يقارن خصائص [page:.x x] و [page:.y y] و [page:.z z] و [page:.w w]
+		من [page:Quaternion v] إلى الخصائص المكافئة لهذا
+		كواترنيون لتحديد ما إذا كانت تمثل نفس الدوران.
+		</p>
+	 
+		<h3>[method:Float dot]( [param:Quaternion v] )</h3>
+		<p>
+		يحسب [link:https://en.wikipedia.org/wiki/Dot_product dot product]
+		من كواترنيونات [page:Quaternion v] وهذا.
+		</p>
+
+		<h3>
+		[method:this fromArray]( [param:Array array], [param:Integer offset] )
+		</h3>
+		<p>
+		[page:Array array] - مصفوفة بتنسيق (x، y، z، w) تستخدم لبناء
+		الكواترنيون.<br />
+		[page:Integer offset] - (اختياري) إزاحة في المصفوفة.<br /><br />
+		 
+		يضع خصائص [page:.x x] و [page:.y y] و [page:.z z] و [page:.w w] 
+		لهذا الكواترنيون من مصفوفة.
+		</p>
+		 
+		<h3>[method:this identity]()</h3>
+		<p>
+		يضع هذا الكواترنيون على الكواترنيون المتطابق ؛ أي إلى
+		الكواترنيون الذي يمثل "لا دوران".
+		</p>
+		 
+		<h3>[method:this invert]()</h3>
+		<p>
+		يعكس هذا الكواترنيون - يحسب [page:.conjugate conjugate]. The
+		يفترض أن الكواترنيون لديه طول وحدة.
+		</p>
+		 
+		<h3>[method:Float length]()</h3>
+		<p>
+		يحسب [link:https://en.wikipedia.org/wiki/Euclidean_distance الطول الإقليدي]
+		(طول خط مستقيم) لهذا الكواترنيون ، كما هو معتبر
+		متجه 4 أبعاد.
+		</p>
+		 
+		<h3>[method:Float lengthSq]()</h3>
+		<p>
+		يحسب المربع
+		[link:https://en.wikipedia.org/wiki/Euclidean_distance الطول الإقليدي]
+		(طول خط مستقيم) لهذا الكواترنيون ، كما هو معتبر متجه 4 أبعاد
+		. هذا يمكن أن يكون مفيدًا إذا كنت تقارن طول اثنين
+		كواترنيون ، حيث أن هذا حساب أكثر كفاءة قليلاً من
+		[page:.length length]().
+		</p>
+		 
+		<h3>[method:this normalize]()</h3>
+		<p>
+		[link:https://en.wikipedia.org/wiki/Normalized_vector يعدل] هذا
+		كواترنيون - أي حساب الكواترنيون الذي يؤدي نفس
+		دوران كهذا ، ولكن لديه [page:.length length] يساوي `1`.
+		</p>
+		 
+
+		<h3>[method:this multiply]( [param:Quaternion q] )</h3>
+		<p>يضرب هذا الكواترنيون بـ[page:Quaternion q].</p>
+	 
+		<h3>
+		[method:this multiplyQuaternions]( [param:Quaternion a], [param:Quaternion b] )
+		</h3>
+		<p>
+		يضع هذا الكواترنيون على[page:Quaternion a] x[page:Quaternion b].<br />
+		تم تكييفه من الطريقة الموضحة
+		[link:http://www.euclideanspace.com/maths/algebra/realNormedAlgebra/quaternions/code/index.html هنا].
+		</p>
+	 
+		<h3>[method:this premultiply]( [param:Quaternion q] )</h3>
+		<p>يضرب مسبقًا هذا الكواترنيون بـ[page:Quaternion q].</p>
+	 
+		<h3>[method:this random]()</h3>
+		<p>يضع هذا الكواترنيون على كواترنيون عشوائي معتدل ومعتدل.</p>
+	 
+		<h3>
+		[method:this rotateTowards]( [param:Quaternion q], [param:Float step] )
+		</h3>
+		<p>
+		[page:Quaternion q] - كواترنيون الهدف. <br />
+		[page:Float step] - الخطوة الزاوية بالراديان. <br /><br />
+	 
+		يدور هذا الكواترنيون بخطوة زاوية معطاة إلى كواترنيون محدد
+		*q*. تضمن الطريقة ألا يتجاوز الكواترنيون النهائي *q*.
+		</p>
+	 
+		<h3>[method:this slerp]( [param:Quaternion qb], [param:Float t] )</h3>
+		<p>
+		[page:Quaternion qb] - التدوير الكواترنيون الآخر<br />
+		[page:Float t] - عامل التداخل في الفترة المغلقة `[0، 1]`. <br /><br />
+	 
+		يتعامل مع التداخل الخطي الكروي بين كواترنيون.
+		[page:Float t] يمثل مقدار التدوير بين هذا الكواترنيون
+		(حيث[page:Float t] هو 0) و[page:Quaternion qb] (حيث[page:Float t]
+		هو 1). يتم تعيين هذا الكواترنيون على النتيجة. اطلع أيضًا على الإصدار الثابت
+		من `slerp` أدناه.
+	 
+		<code>
+		// تدور شبكة نحو كواترنيون هدف 
+		mesh.quaternion.slerp( endQuaternion، 0.01 );
+		</code>
+		</p>
+	 
+		<h3>
+		[method:this slerpQuaternions]( [param:Quaternion qa], [param:Quaternion qb], [param:Float t] )
+		</h3>
+		<p>
+		يؤدي التداخل الخطي الكروي بين كواترنيون المعطى
+		وتخزين النتائج في هذا الكواترنيون.
+		</p>
+
+		<h3>
+		[method:this set]( [param:Float x], [param:Float y], [param:Float z], [param:Float w] )
+		</h3>
+		<p>
+		يضع خصائص [page:.x x] ،[page:.y y] ،[page:.z z] ،[page:.w w] من هذا
+		كواترنيون.
+		</p>
+		 
+		<h3>
+		[method:this setFromAxisAngle]( [param:Vector3 axis], [param:Float angle] )
+		</h3>
+		<p>
+		يضع هذا الكواترنيون من التدوير المحدد بـ[page:Vector3 axis] و
+		[page:Float angle].<br />
+		تم تكييفه من الطريقة
+		[link:http://www.euclideanspace.com/maths/geometry/rotations/conversions/angleToQuaternion/index.html هنا].<br />
+		يفترض أن يكون `Axis` معتدلًا ، `angle` بالراديان.
+		</p>
+		 
+		<h3>[method:this setFromEuler]( [param:Euler euler] )</h3>
+		<p>
+		يضع هذا الكواترنيون من التدوير المحدد بزاوية[page:Euler].
+		</p>
+		 
+		<h3>[method:this setFromRotationMatrix]( [param:Matrix4 m] )</h3>
+		<p>
+		[page:Matrix4 m] - a[page:Matrix4] من الذي العلوي 3x3 من المصفوفة هو
+		مصفوفة دوران نقية
+		(أي غير متساوية القياس).<br />
+		يضع هذا الكواترنيون من مكون التدوير لـ[page:Matrix4 m].<br />
+		تم تكييفه من الطريقة
+		[link:http://www.euclideanspace.com/maths/geometry/rotations/conversions/matrixToQuaternion/index.html هنا].
+		</p>
+		 
+		<h3>
+		[method:this setFromUnitVectors]( [param:Vector3 vFrom], [param:Vector3 vTo] )
+		</h3>
+		<p>
+		يضع هذا الكواترنيون على التدوير المطلوب لتدوير متجه الاتجاه
+		[page:Vector3 vFrom] إلى متجه الاتجاه[page:Vector3 vTo].<br />
+		تم تكييفه من الطريقة
+		[link:http://lolengine.net/blog/2013/09/18/beautiful-maths-quaternion-from-vectors هنا].<br />
+		يفترض أن يكون[page:Vector3 vFrom] و[page:Vector3 vTo] معتدلًا.
+		</p>
+		 
+		<h3>
+		[method:Array toArray]( [param:Array array], [param:Integer offset] )
+		</h3>
+		<p>
+		[page:Array array] - مصفوفة اختيارية لتخزين الكواترنيون. إذا لم يتم
+		محدد ، سيتم إنشاء مصفوفة جديدة. <br />
+		[page:Integer offset] - (اختياري) إذا تم تحديده ، فسيتم نسخ
+		في هذه[page:Array].<br /><br />
+		 
+		يعود بالعناصر العددية لهذا الكواترنيون في مصفوفة بتنسيق
+		[x، y، z، w].
+		</p>
+		 
+		<h3>[method:Array toJSON]()</h3>
+		<p>
+		هذه الطرق تحدد نتيجة التسلسل لـ[name]. يعود
+		العناصر العددية لهذا الكواترنيون في مصفوفة بتنسيق [x، y، z، w].
+		</p>
+	 
+		<h3>
+		[method:this fromBufferAttribute]( [param:BufferAttribute attribute], [param:Integer index] )
+		</h3>
+		<p>
+		[page:BufferAttribute attribute] - السمة المصدر. <br />
+		[page:Integer index] - فهرس في السمة. <br /><br />
+	 
+		يضع خصائص [page:.x x] ،[page:.y y] ،[page:.z z] ،[page:.w w] من هذا
+		كواترنيون من[page:BufferAttribute attribute].
+		</p>
+	 
+		<h2>طرق ثابتة (Static Methods)</h2>
+	 
+		<h3>
+		[method:undefined slerpFlat]( [param:Array dst], [param:Integer dstOffset], 
+		[param:Array src0], [param:Integer srcOffset0], [param:Array src1], 
+		[param:Integer srcOffset1], [param:Float t] )
+		</h3>
+		<p>
+		[page:Array dst] - مصفوفة الإخراج. <br />
+		[page:Integer dstOffset] - إزاحة في مصفوفة الإخراج. <br />
+		[page:Array src0] - مصفوفة المصدر للكواترنيون البدائي. <br />
+		[page:Integer srcOffset0] - إزاحة في مصفوفة `src0`. <br />
+		[page:Array src1] - مصفوفة المصدر للكواترنيون المستهدف. <br />
+		[page:Integer srcOffset1] - إزاحة في مصفوفة `src1`. <br />
+		[page:Float t] - عامل التداخل المعتدل (بين 0 و 1). <br /><br />
+	 
+		تفترض هذه التطبيقات SLERP أن بيانات الكواترنيون يتم إدارتها في
+		مصفوفات مسطحة.
+		</p>
+	 
+		<h3>
+		[method:Array multiplyQuaternionsFlat]( [param:Array dst], [param:Integer dstOffset], 
+		[param:Array src0], [param:Integer srcOffset0], [param:Array src1], [param:Integer srcOffset1] )
+		</h3>
+		<p>
+		[page:Array dst] - مصفوفة الإخراج. <br />
+		[page:Integer dstOffset] - إزاحة في مصفوفة الإخراج. <br />
+		[page:Array src0] - مصفوفة المصدر للكواترنيون البدائي. <br />
+		[page:Integer srcOffset0] - إزاحة في مصفوفة `src0`. <br />
+		[page:Array src1] - مصفوفة المصدر للكواترنيون المستهدف. <br />
+		[page:Integer srcOffset1] - إزاحة في مصفوفة `src1`. <br /><br />
+	 
+		تفترض هذه التطبيقات التعددية أن بيانات الكواترنيون يتم إدارتها
+		في مصفوفات مسطحة.
+		</p>
+
+		<!-- Note: Do not add non-static methods to the bottom of this page. Put them above the <h2>Static Methods</h2> -->
+
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 237 - 0
docs/api/ar/math/Ray.html

@@ -0,0 +1,237 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		<h1>[name]</h1>
+
+		<p class="desc">
+		شعاع ينبعث من أصل في اتجاه معين. يتم استخدام هذا بواسطة
+		[page:Raycaster] للمساعدة في
+		[link:https://en.wikipedia.org/wiki/Ray_casting الإشعاع]. يتم استخدام الإشعاع
+		لاختيار الماوس (معرفة الكائنات في المسافة 3D التي يكون الماوس
+		فوقها) من بين أشياء أخرى.
+		</p>
+		 
+		<h2>المنشئ (Constructor)</h2>
+		 
+		<h3>[name]( [param:Vector3 origin], [param:Vector3 direction] )</h3>
+		<p>
+		[page:Vector3 origin] - (اختياري) أصل الـ[page:Ray]. الافتراضي
+		هو [page:Vector3] عند (0، 0، 0).<br />
+		[page:Vector3 direction] - [page:Vector3] اتجاه الـ[page:Ray].
+		يجب تسوية هذا (بـ[page:Vector3.normalize]) لتشغيل الطرق بشكل صحيح. الافتراضي هو [page:Vector3] عند (0، 0، -1).<br /><br />
+		 
+		ينشئ [name] جديدًا.
+		</p>
+		 
+		<h2>الخصائص (Properties)</h2>
+		 
+		<h3>[property:Vector3 origin]</h3>
+		<p>
+		أصل الـ[page:Ray]. الافتراضي هو [page:Vector3] عند `(0، 0، 0)`.
+		</p>
+		 
+		<h3>[property:Vector3 direction]</h3>
+		<p>
+		اتجاه الـ[page:Ray]. يجب تسوية هذا (بـ
+		[page:Vector3.normalize]) لتشغيل الطرق بشكل صحيح. الافتراضي هو
+		[page:Vector3] عند (0، 0، -1).
+		</p>
+	 
+		<h2>الطرق (Methods)</h2>
+	 
+		<h3>[method:this applyMatrix4]( [param:Matrix4 matrix4] )</h3>
+		<p>
+		[page:Matrix4 matrix4] - الـ[page:Matrix4] لتطبيقه على هذا
+		[page:Ray].<br /><br />
+	 
+		تحويل هذا الـ[page:Ray] بواسطة [page:Matrix4].
+		</p>
+	 
+		<h3>[method:Vector3 at]( [param:Float t], [param:Vector3 target] )</h3>
+		<p>
+		[page:Float t] - المسافة على طول الـ[page:Ray] لاسترداد موضع
+		ل.<br />
+		[page:Vector3 target] — سيتم نسخ النتيجة في هذا Vector3.<br /><br />
+	 
+		احصل على [page:Vector3] هو مسافة معينة على طول هذا الـ[page:Ray].
+		</p>
+	 
+		<h3>[method:Ray clone]()</h3>
+		<p>
+		ينشئ Ray جديدًا بخصائص [page:.origin origin] و
+		[page:.direction direction] متطابقة مع هذا.
+		</p>
+	 
+		<h3>
+		[method:Vector3 closestPointToPoint]( [param:Vector3 point], [param:Vector3 target] )
+		</h3>
+		<p>
+		[page:Vector3 point] - النقطة التي سيتم الحصول على أقرب نهج إليها. <br />
+		[page:Vector3 target] — سيتم نسخ النتيجة في هذا Vector3.<br /><br />
+	 
+		احصل على النقطة على طول هذا الـ[page:Ray] التي تكون أقرب إلى المزود
+		[page:Vector3].
+		</p>
+	 
+		<h3>[method:this copy]( [param:Ray ray] )</h3>
+		<p>
+		ينسخ خصائص [page:.origin origin] و [page:.direction direction]
+		من [page:Ray ray] إلى هذا الشعاع.
+		</p>
+	 
+		<h3>[method:Float distanceSqToPoint]( [param:Vector3 point] )</h3>
+		<p>
+		[page:Vector3 point] - الـ[page:Vector3] لحساب المسافة إليه.<br /><br />
+	 
+		احصل على المسافة المربعة لأقرب نهج بين [page:Ray]
+		و [page:Vector3].
+		</p>
+	 
+		<h3>
+		[method:Float distanceSqToSegment]( [param:Vector3 v0], [param:Vector3 v1], 
+		[param:Vector3 optionalPointOnRay], [param:Vector3 optionalPointOnSegment] )
+		</h3>
+		<p>
+		[page:Vector3 v0] - بداية الخط المستقيم.<br />
+		[page:Vector3 v1] - نهاية الخط المستقيم.<br />
+		optionalPointOnRay - (اختياري) إذا تم توفير هذا ، فإنه يتلقى النقطة
+		على هذا الـ[page:Ray] الأقرب إلى الشريحة.<br />
+		optionalPointOnSegment - (اختياري) إذا تم توفير هذا ، فإنه يتلقى
+		نقطة على شريحة الخط الأقرب إلى هذا الـ[page:Ray].<br /><br />
+	 
+		احصل على المسافة المربعة بين هذا الـ[page:Ray] وشريحة خط.
+		</p>
+	 
+		<h3>[method:Float distanceToPlane]( [param:Plane plane] )</h3>
+		<p>
+		[page:Plane plane] - الـ[page:Plane] للحصول على المسافة إليه.<br /><br />
+	 
+		احصل على المسافة من [page:.origin origin] إلى [page:Plane] ، أو `null`
+		إذا لم يتقاطع الـ[page:Ray] مع [page:Plane].
+		</p>
+	 
+		<h3>[method:Float distanceToPoint]( [param:Vector3 point] )</h3>
+		<p>
+		[page:Vector3 point] - [page:Vector3] The [page:Vector3] لحساب
+		مسافة إليه.<br /><br />
+	 
+		احصل على مسافة أقرب نهج بين الـ[page:Ray] و
+		 [page:Vector3 point].
+		</p>
+
+		<h3>[method:Boolean equals]( [param:Ray ray] )</h3>
+		<p>
+		[page:Ray ray] - الـ[page:Ray] للمقارنة معه.<br /><br />
+	 
+		يعود بالقيمة true إذا كان هذا والآخر [page:Ray ray] لديهما [page:.origin origin] 
+		و [page:.direction direction] متساويان.
+		</p>
+	 
+		<h3>
+		[method:Vector3 intersectBox]( [param:Box3 box], [param:Vector3 target] )
+		</h3>
+		<p>
+		[page:Box3 box] - الـ[page:Box3] للتقاطع معه.<br />
+		[page:Vector3 target] — سيتم نسخ النتيجة في هذا Vector3.<br /><br />
+	 
+		تقاطع هذا الـ[page:Ray] مع [page:Box3] ، وإرجاع نقطة التقاطع
+		أو `null` إذا لم يكن هناك تقاطع.
+		</p>
+	 
+		<h3>
+		[method:Vector3 intersectPlane]( [param:Plane plane], [param:Vector3 target] )
+		</h3>
+		<p>
+		[page:Plane plane] - الـ[page:Plane] للتقاطع معه.<br />
+		[page:Vector3 target] — سيتم نسخ النتيجة في هذا Vector3.<br /><br />
+	 
+		تقاطع هذا الـ[page:Ray] مع [page:Plane] ، وإرجاع نقطة التقاطع
+		أو `null` إذا لم يكن هناك تقاطع.
+		</p>
+	 
+		<h3>
+		[method:Vector3 intersectSphere]( [param:Sphere sphere], [param:Vector3 target] )
+		</h3>
+		<p>
+		[page:Sphere sphere] - الـ[page:Sphere] للتقاطع معه.<br />
+		[page:Vector3 target] — سيتم نسخ النتيجة في هذا Vector3.<br /><br />
+	 
+		تقاطع هذا الـ[page:Ray] مع [page:Sphere] ، وإرجاع نقطة التقاطع
+		أو `null` إذا لم يكن هناك تقاطع.
+		</p>
+	 
+		<h3>
+		[method:Vector3 intersectTriangle]( [param:Vector3 a], [param:Vector3 b], [param:Vector3 c], [param:Boolean backfaceCulling], [param:Vector3 target] )
+		</h3>
+		<p>
+		[page:Vector3 a], [page:Vector3 b], [page:Vector3 c] - نقاط الـ[page:Vector3]
+		التي تشكل المثلث.<br />
+		[page:Boolean backfaceCulling] - ما إذا كان سيتم استخدام قص الوجه الخلفي.<br />
+		[page:Vector3 target] — سيتم نسخ النتيجة في هذا Vector3.<br /><br />
+	 
+		تقاطع هذه الـ[page:Ray] مع مثلث ، وإرجاع نقطة التقاطع
+		أو `null` إذا لم يكن هناك تقاطع.
+		</p>
+	 
+		<h3>[method:Boolean intersectsBox]( [param:Box3 box] )</h3>
+		<p>
+		[page:Box3 box] - [page:Box3] للتقاطع معه.<br /><br />
+	 
+		يعود بالقيمة true إذا كان هذا [page:Ray] يتقاطع مع [page:Box3].
+		</p>
+	 
+		<h3>[method:Boolean intersectsPlane]( [param:Plane plane] )</h3>
+		<p>
+		[page:Plane plane] - [page:Plane] للتقاطع معه.<br /><br />
+	 
+		يعود بالقيمة true إذا كان هذا [page:Ray] يتقاطع مع [page:Plane].
+		</p>
+	 
+		<h3>[method:Boolean intersectsSphere]( [param:Sphere sphere] )</h3>
+		<p>
+		[page:Sphere sphere] - [page:Sphere] للتقاطع معه.<br /><br />
+	 
+		يعود بالقيمة true إذا كان هذا [page:Ray] يتقاطع مع [page:Sphere].
+		</p>
+	 
+		<h3>[method:this lookAt]( [param:Vector3 v] )</h3>
+		<p>
+		[page:Vector3 v] - الـ[page:Vector3] الذي سينظر إليه.<br /><br />
+	 
+		يضبط اتجاه الشعاع للإشارة إلى المتجه في الإحداثيات العالمية.
+		</p>
+	 
+		<h3>[method:this recast]( [param:Float t] )</h3>
+		<p>
+		[page:Float t] - المسافة على طول الـ[page:Ray] للإدراج.<br /><br />
+	 
+		تحريك أصل هذا الـ[page:Ray] على طول اتجاهه بالمسافة
+		المحددة.
+		</p>
+	 
+		<h3>
+		[method:this set]( [param:Vector3 origin], [param:Vector3 direction] )
+		</h3>
+		<p>
+		[page:Vector3 origin] - أصل الـ[page:.origin origin] لـ[page:Ray].<br />
+		[page:Vector3 direction] - اتجاه الـ[page:.direction direction]
+		لـ[page:Ray]. يجب تسوية هذا (بـ[page:Vector3.normalize]) لـ
+		تشغيل الطرق بشكل صحيح.<br /><br />
+	 
+		يضبط خصائص أصل واتجاه هذا الشعاع
+		من خلال نسخ القيم من الكائنات المحددة.
+		</p>
+
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 177 - 0
docs/api/ar/math/Sphere.html

@@ -0,0 +1,177 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		<h1>[name]</h1>
+
+		<p class="desc">كرة محددة بمركز ونصف قطر.</p>
+
+		<h2>المنشئ (Constructor)</h2>
+		<h3>[name]( [param:Vector3 center], [param:Float radius] )</h3>
+		<p>
+		[page:Vector3 center] - مركز الكرة. الافتراضي هو [page:Vector3]
+		عند `(0، 0، 0)`. <br />
+		[page:Float radius] - نصف قطر الكرة. الافتراضي هو -1.<br /><br />
+	 
+		ينشئ [name] جديدًا.
+		</p>
+	 
+		<h2>الخصائص (Properties)</h2>
+	 
+		<h3>[property:Vector3 center]</h3>
+		<p>
+		[page:Vector3] يحدد مركز الكرة. الافتراضي هو `(0، 0،
+		0)`.
+		</p>
+	 
+		<h3>[property:Float radius]</h3>
+		<p>نصف قطر الكرة. الافتراضي هو -1.</p>
+	 
+		<h2>الطرق (Methods)</h2>
+	 
+		<h3>[method:this applyMatrix4]( [param:Matrix4 matrix] )</h3>
+		<p>
+		[page:Matrix4 matrix] - [Page:Matrix4] للتطبيق <br /><br />
+	 
+		يحول هذه الكرة بواسطة [page:Matrix4] المحدد.
+		</p>
+	 
+		<h3>
+		[method:Vector3 clampPoint]( [param:Vector3 point], [param:Vector3 target] )
+		</h3>
+		<p>
+		[page:Vector3 point] - [page:Vector3] النقطة التي سيتم تثبيتها.<br />
+		[page:Vector3 target] — سيتم نسخ النتيجة في هذا Vector3.<br /><br />
+	 
+		يثبت نقطة داخل الكرة. إذا كانت النقطة خارج الكرة ، فسوف
+		يثبتها على أقرب نقطة على حافة الكرة. لن تتأثر النقاط
+		بالفعل داخل الكرة.
+		</p>
+	 
+		<h3>[method:Sphere clone]()</h3>
+		<p>
+		يعود بكرة جديدة بنفس [page:.center center] و [page:.radius radius] كهذه.
+		</p>
+	 
+		<h3>[method:Boolean containsPoint]( [param:Vector3 point] )</h3>
+		<p>
+		[page:Vector3 point] - الـ[page:Vector3] المطلوب التحقق منه<br /><br />
+	 
+		يتحقق مما إذا كانت الكرة تحتوي على [page:Vector3 point] المحدد
+		شاملاً سطح الكرة.
+		</p>
+
+		<h3>[method:this copy]( [param:Sphere sphere] )</h3>
+		<p>
+		ينسخ قيم خصائص [page:.center center] و [page:.radius radius] للكرة المعطاة إلى هذه الكرة.
+		</p>
+	 
+		<h3>[method:Float distanceToPoint]( [param:Vector3 point] )</h3>
+		<p>
+		يعيد أقرب مسافة من حدود الكرة إلى
+		[page:Vector3 point]. إذا كانت الكرة تحتوي على النقطة ، فستكون المسافة
+		سلبية.
+		</p>
+	 
+		<h3>[method:this expandByPoint]( [param:Vector3 point] )</h3>
+		<p>
+		[page:Vector3 point] - [page:Vector3] التي يجب تضمينها في
+		الكرة.<br /><br />
+	 
+		يوسع حدود هذه الكرة لتشمل [page:Vector3 point].
+		</p>
+	 
+		<h3>[method:Boolean isEmpty]()</h3>
+		<p>
+		يتحقق مما إذا كانت الكرة فارغة (تم تعيين نصف القطر إلى رقم
+		سلبي). <br />
+		الكرات التي يبلغ نصف قطرها 0 تحتوي فقط على نقطة مركزها ولا
+		يعتبر فارغًا.
+		</p>
+	 
+		<h3>[method:this makeEmpty]()</h3>
+		<p>
+		يجعل الكرة فارغة عن طريق تعيين [page:.center center] إلى (0، 0، 0) و
+		[page:.radius radius] إلى -1.
+		</p>
+	 
+		<h3>[method:Boolean equals]( [param:Sphere sphere] )</h3>
+		<p>يتحقق مما إذا كانت مراكز وأشعة الكرتين متساوية.</p>
+	 
+		<h3>[method:Box3 getBoundingBox]( [param:Box3 target] )</h3>
+		<p>
+		[page:Box3 target] — سيتم نسخ النتيجة في هذا Box3.<br /><br />
+	 
+		يعود بـ[link:https://en.wikipedia.org/wiki/Minimum_bounding_box Minimum Bounding Box]
+		للكرة.
+		</p>
+	 
+		<h3>[method:Boolean intersectsBox]( [param:Box3 box] )</h3>
+		<p>
+		[page:Box3 box] - [page:Box3] للتحقق من التقاطع ضدها.<br /><br />
+	 
+		يحدد ما إذا كانت هذه الكرة تتقاطع مع [page:Box3 box] المحددة أم لا.
+		</p>
+
+		<h3>[method:Boolean intersectsPlane]( [param:Plane plane] )</h3>
+		<p>
+		[page:Plane plane] - الطائرة للتحقق من التقاطع ضدها.<br /><br />
+		 
+		يحدد ما إذا كانت هذه الكرة تتقاطع مع [page:Plane plane] المحددة أم لا.
+		</p>
+		 
+		<h3>[method:Boolean intersectsSphere]( [param:Sphere sphere] )</h3>
+		<p>
+		[page:Sphere sphere] - الكرة للتحقق من التقاطع ضدها.<br /><br />
+		 
+		يتحقق مما إذا كانت كرتين تتقاطعان.
+		</p>
+		 
+		<h3>[method:this set]( [param:Vector3 center], [param:Float radius] )</h3>
+		<p>
+		[page:Vector3 center] - مركز الكرة.<br />
+		[page:Float radius] - نصف قطر الكرة.<br /><br />
+		 
+		يضبط خصائص [page:.center center] و [page:.radius radius]
+		لهذه الكرة.<br />
+		يرجى ملاحظة أن هذه الطريقة تنسخ فقط القيم من المركز المحدد.
+		</p>
+		 
+		<h3>
+		[method:this setFromPoints]( [param:Array points], [param:Vector3 optionalCenter] )
+		</h3>
+		<p>
+		[page:Array points] - مصفوفة من مواضع [page:Vector3].<br />
+		[page:Vector3 optionalCenter] - موضع اختياري لـ[page:Vector3]
+		مركز الكرة.<br /><br />
+		 
+		يحسب الكرة المحيطة الدنيا لمصفوفة من نقاط [page:Array].
+		إذا تم إعطاء [page:Vector3 optionalCenter] ، يتم استخدامه كمركز للكرة
+		. وإلا ، يتم حساب مركز المستطيل المحيط المستوي
+		تغليف نقاط [page:Array].
+		</p>
+		 
+		<h3>[method:this translate]( [param:Vector3 offset] )</h3>
+		<p>ترجمة مركز الكرة بالإزاحة المحددة [page:Vector3].</p>
+		 
+		<h3>[method:this union]( [param:Sphere sphere] )</h3>
+		<p>
+		[page:Sphere sphere] - كرة المحيط التي ستتحد مع هذه
+		كرة.<br /><br />
+		 
+		يوسع هذه الكرة لإغلاق كل من الكرة الأصلية والمعطى
+		كرة.
+		</p>
+		 
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 90 - 0
docs/api/ar/math/Spherical.html

@@ -0,0 +1,90 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		<h1>[name]</h1>
+
+		<p class="desc">
+		إحداثيات [link:https://en.wikipedia.org/wiki/Spherical_coordinate_system الكروية] للنقطة.
+		</p>
+		 
+		<h2>المنشئ (Constructor)</h2>
+		 
+		<h3>
+		[name]( [param:Float radius], [param:Float phi], [param:Float theta] )
+		</h3>
+		<p>
+		[page:Float radius] - نصف القطر ، أو
+		[link:https://en.wikipedia.org/wiki/Euclidean_distance المسافة الإقليدية]
+		(المسافة الخطية) من النقطة إلى الأصل. الافتراضي هو
+		`1.0`.<br />
+		[page:Float phi] - الزاوية القطبية بالراديان من المحور y (لأعلى). الافتراضي هو
+		`0`.<br />
+		[page:Float theta] - زاوية خط الاستواء بالراديان حول المحور y (لأعلى).
+		الافتراضي هو `0`.<br /><br />
+		 
+		الأقطاب (phi) عند المحور y الموجب والسالب. يبدأ خط الاستواء
+		(theta) في z الموجب.
+		</p>
+		 
+		<h2>Properties</h2>
+
+		<h3>[property:Float radius]</h3>
+
+		<h3>[property:Float phi]</h3>
+
+		<h3>[property:Float theta]</h3>
+
+		<h2>الطرق (Methods)</h2>
+	 
+		<h3>[method:Spherical clone]()</h3>
+		<p>
+		يعود بكرة جديدة بنفس خصائص [page:.radius radius] و [page:.phi phi] 
+		و [page:.theta theta] كهذه.
+		</p>
+	 
+		<h3>[method:this copy]( [param:Spherical s] )</h3>
+		<p>
+		ينسخ قيم خصائص [page:.radius radius] و [page:.phi phi] و [page:.theta theta] للكرة المعطاة إلى هذه الكرة.
+		</p>
+	 
+		<h3>[method:this makeSafe]()</h3>
+		<p>
+		يقيد الزاوية القطبية [page:.phi phi] لتكون بين 0.000001 و pi -
+		0.000001.
+		</p>
+	 
+		<h3>
+		[method:this set]( [param:Float radius], [param:Float phi], [param:Float theta] )
+		</h3>
+		<p>
+		يضبط قيم خصائص [page:.radius radius] و [page:.phi phi] و
+		[page:.theta theta] لهذه الكرة.
+		</p>
+	 
+		<h3>[method:this setFromVector3]( [param:Vector3 vec3] )</h3>
+		<p>
+		يضبط قيم خصائص [page:.radius radius] و [page:.phi phi] و
+		[page:.theta theta] لهذه الكرة من الـ[page:Vector3 Vector3].
+		</p>
+	 
+		<h3>
+		[method:this setFromCartesianCoords]( [param:Float x], [param:Float y], [param:Float z] )
+		</h3>
+		<p>
+		يضبط قيم خصائص [page:.radius radius] و [page:.phi phi] و
+		[page:.theta theta] لهذه الكرة من الإحداثيات الديكارتية.
+		</p>
+	 
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 155 - 0
docs/api/ar/math/SphericalHarmonics3.html

@@ -0,0 +1,155 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		<h1>[name]</h1>
+
+		<p class="desc">
+		يمثل تناغم كروي من الدرجة الثالثة (SH). تستخدم مسابر الضوء هذه الفئة لتشفير معلومات الإضاءة.
+		</p>
+			
+		<h2>المنشئ (Constructor)</h2>
+		<h3>[name]()</h3>
+		<p>ينشئ نسخة جديدة من [name].</p>
+			
+		<h2>الخصائص (Properties)</h2>
+			
+		<h3>[property:Array coefficients]</h3>
+		<p>
+		مصفوفة تحتوي على (9) معاملات SH. يتم تمثيل معامل واحد كنسخة من [page:Vector3].
+		</p>
+			
+		<h3>[property:Boolean isSphericalHarmonics3]</h3>
+		<p>علامة للقراءة فقط للتحقق مما إذا كان الكائن المعطى من نوع [name].</p>
+			
+		<h2>الطرق (Methods)</h2>
+			
+		<h3>[method:this add]( [param:SphericalHarmonics3 sh] )</h3>
+		<p>
+		[page:SphericalHarmonics3 sh] - SH المراد إضافته.<br /><br />
+			
+		يضيف SH المعطى إلى هذه النسخة.
+		</p>
+			
+		<h3>
+		[method:this addScaledSH]( [param:SphericalHarmonics3 sh], [param:Number scale] )
+		</h3>
+		<p>
+		[page:SphericalHarmonics3 sh] - SH المراد إضافته.<br />
+		[page:Number scale] - عامل التحجيم.<br /><br />
+			
+		طريقة سهلة لأداء [page:.add]() و [page:.scale]() في آن واحد.
+		</p>
+
+		<h3>[method:SphericalHarmonics3 clone]()</h3>
+		<p>يعود بحالة جديدة من [name] بمعاملات متساوية.</p>
+	 
+		<h3>[method:this copy]( [param:SphericalHarmonics3 sh] )</h3>
+		<p>
+		[page:SphericalHarmonics3 sh] - الـSH للنسخ.<br /><br />
+	 
+		ينسخ الـSH المعطى إلى هذه الحالة.
+		</p>
+	 
+		<h3>[method:Boolean equals]( [param:SphericalHarmonics3 sh] )</h3>
+		<p>
+		[page:SphericalHarmonics3 sh] - الـSH للمقارنة معه.<br /><br />
+	 
+		يعود بـtrue إذا كان الـSH المعطى وهذه الحالة لديهما معاملات متساوية.
+		</p>
+	 
+		<h3>
+		[method:this fromArray]( [param:Array array], [param:Number offset] )
+		</h3>
+		<p>
+		[page:Array array] - المصفوفة التي تحمل أرقام معاملات SH
+	 .<br />
+		[page:Number offset] - (اختياري) إزاحة المصفوفة.<br /><br />
+	 
+		يضبط معاملات هذه الحالة من المصفوفة المعطاة.
+		</p>
+	 
+		<h3>
+		[method:Vector3 getAt]( [param:Vector3 normal], [param:Vector3 target] )
+		</h3>
+		<p>
+		[page:Vector3 normal] - متجه الطبيعي (يفترض أن يكون طول الوحدة).<br />
+		[page:Vector3 target] - متجه النتيجة.<br /><br />
+	 
+		يعود بالإشعاع في اتجاه الطبيعي المحدد.
+		</p>
+	 
+		<h3>
+		[method:Vector3 getIrradianceAt]( [param:Vector3 normal], [param:Vector3 target] )
+		</h3>
+		<p>
+		[page:Vector3 normal] - متجه الطبيعي (يفترض أن يكون طول الوحدة).<br />
+		[page:Vector3 target] - متجه النتيجة.<br /><br />
+	 
+		يعود بالإشعاع (الإشعاع الملتف مع فص الجيب) في
+		اتجاه الطبيعي المحدد.
+		</p>
+	 
+		<h3>
+		[method:this lerp]( [param:SphericalHarmonics3 sh], [param:Number alpha] )
+		</h3>
+		<p>
+		[page:SphericalHarmonics3 sh] - الـSH للتداخل معه.<br />
+		[page:Number alpha] - عامل الألفا.<br /><br />
+		 
+		يتداخل بين الـSH المعطى وهذه الحالة بواسطة
+		عامل الألفا المعطى.
+		</p>
+		 
+		<h3>[method:this scale]( [param:Number scale] )</h3>
+		<p>
+		[page:Number scale] - عامل المقياس.<br /><br />
+		 
+		يقيس هذا الـSH بواسطة عامل المقياس المعطى.
+		</p>
+		 
+		<h3>[method:this set]( [param:Array coefficients] )</h3>
+		<p>
+		[page:Array coefficients] - مصفوفة من معاملات SH.<br /><br />
+		 
+		يضبط معاملات SH المعطاة لهذه الحالة.
+		</p>
+		 
+		<h3>
+		[method:Array toArray]( [param:Array array], [param:Number offset] )
+		</h3>
+		<p>
+		[page:Array array] - (اختياري) المصفوفة الهدف.<br />
+		[page:Number offset] - (اختياري) إزاحة المصفوفة.<br /><br />
+		 
+		يعود بمصفوفة بالمعاملات ، أو ينسخهم في المصفوفة المحددة
+		صفيف. يتم تمثيل المعاملات كأرقام.
+		</p>
+		 
+		<h3>[method:this zero]()</h3>
+		<p>يضبط جميع معاملات SH على 0.</p>
+		 
+		<h2>طرق ثابتة (Static Methods)</h2>
+		 
+		<h3>
+		[method:undefined getBasisAt]( [param:Vector3 normal], [param:Array shBasis] )
+		</h3>
+		<p>
+		[page:Vector3 normal] - متجه الطبيعي (يفترض أن يكون طول الوحدة).<br />
+		[page:Array shBasis] - الأساس SH الناتج.<br /><br />
+		 
+		يحسب أساس SH لمتجه الطبيعي المحدد.
+		</p>
+		 
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 184 - 0
docs/api/ar/math/Triangle.html

@@ -0,0 +1,184 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		<h1>[name]</h1>
+
+		<p class="desc">
+		مثلث هندسي كما هو محدد بثلاثة [page:Vector3 Vector3s] تمثل زواياه الثلاثة.
+		</p>
+			
+		<h2>المنشئ (Constructor)</h2>
+			
+		<h3>[name]( [param:Vector3 a], [param:Vector3 b], [param:Vector3 c] )</h3>
+		<p>
+		[page:Vector3 a] - الزاوية الأولى للمثلث. الافتراضي هو [page:Vector3] في `(0، 0، 0)`.<br />
+		[page:Vector3 b] - الزاوية الثانية للمثلث. الافتراضي هو [page:Vector3] في `(0، 0، 0)`.<br />
+		[page:Vector3 c] - الزاوية النهائية للمثلث. الافتراضي هو [page:Vector3] في `(0، 0، 0)`.<br /><br />
+			
+		ينشئ نسخة جديدة من [name].
+		</p>
+			
+		<h2>الخصائص (Properties)</h2>
+			
+		<h3>[property:Vector3 a]</h3>
+		<p>
+		الزاوية الأولى للمثلث. الافتراضي هو [page:Vector3] في `(0، 0، 0)`.
+		</p>
+			
+		<h3>[property:Vector3 b]</h3>
+		<p>
+		الزاوية الثانية للمثلث. الافتراضي هو [page:Vector3] في `(0، 0، 0)`.
+		</p>
+			
+		<h3>[property:Vector3 c]</h3>
+		<p>
+		الزاوية النهائية للمثلث. الافتراضي هو [page:Vector3] في `(0، 0، 0)`.
+		</p>
+			
+		<h2>الطرق (Methods)</h2>
+
+		<h3>[method:Triangle clone]()</h3>
+		<p>
+		يعود بمثلث جديد بنفس خصائص [page:.a a]، [page:.b b] و [page:.c c] كهذا.
+		</p>
+		
+		<h3>
+		[method:Vector3 closestPointToPoint]( [param:Vector3 point], [param:Vector3 target] )
+		</h3>
+		<p>
+		[page:Vector3 point] - [page:Vector3] <br />
+		[page:Vector3 target] - سيتم نسخ النتيجة في هذا Vector3.<br /><br />
+		
+		يعود بأقرب نقطة على المثلث إلى [page:Vector3 point].
+		</p>
+		
+		<h3>[method:Boolean containsPoint]( [param:Vector3 point] )</h3>
+		<p>
+		[page:Vector3 point] - [page:Vector3] للتحقق.<br /><br />
+		
+		يعود بـ true إذا كانت النقطة الممررة، عندما يتم إسقاطها على مستوى المثلث، تقع داخل المثلث.
+		</p>
+		
+		<h3>[method:this copy]( [param:Triangle triangle] )</h3>
+		<p>
+		ينسخ قيم خصائص [page:.a a]، [page:.b b] و [page:.c c] للمثلث الممرر إلى هذا المثلث.
+		</p>
+		
+		<h3>[method:Boolean equals]( [param:Triangle triangle] )</h3>
+		<p>
+		يعود بـ true إذا كانت المثلثين لديهما خصائص متطابقة من [page:.a a]، [page:.b b]
+		و [page:.c c].
+		</p>
+		
+		<h3>[method:Float getArea]()</h3>
+		<p>يرجع مساحة المثلث.</p>
+		
+		<h3>
+		[method:Vector3 getBarycoord]( [param:Vector3 point], [param:Vector3 target] )
+		</h3>
+		<p>
+		[page:Vector3 point] - [page:Vector3] <br />
+		[page:Vector3 target] - سيتم نسخ النتيجة في هذا Vector3.<br /><br />
+		
+		يرجع إحداثية ثلاثية من المتجه المعطى. <br /><br />
+		
+		[link:http://commons.wikimedia.org/wiki/File:Barycentric_coordinates_1.png صورة لإحداثيات ثلاثية]
+		</p>
+
+		<h3>[method:Vector3 getMidpoint]( [param:Vector3 target] )</h3>
+		<p>
+		[page:Vector3 target] - سيتم نسخ النتيجة في هذا Vector3.<br /><br />
+		
+		حساب نقطة منتصف المثلث.
+		</p>
+		
+		<h3>[method:Vector3 getNormal]( [param:Vector3 target] )</h3>
+		<p>
+		[page:Vector3 target] - سيتم نسخ النتيجة في هذا Vector3.<br /><br />
+		
+		حساب [link:https://en.wikipedia.org/wiki/Normal_(geometry) متجه العادي] للمثلث.
+		</p>
+		
+		<h3>[method:Plane getPlane]( [param:Plane target] )</h3>
+		<p>
+		[page:Plane target] - سيتم نسخ النتيجة في هذا Plane.<br /><br />
+		
+		حساب [page:Plane plane] بناءً على المثلث. .
+		</p>
+		
+		<h3>
+		[method:Vector getInterpolation]( [param:Vector3 point], [param:Vector3 p1], [param:Vector3 p2], [param:Vector3 p3], [param:Vector v1], [param:Vector v2], [param:Vector v3], [param:Vector target] )
+		</h3>
+		<p>
+		[page:Vector3 point] - موقع النقطة المُركبة.<br />
+		[page:Vector3 p1] - موقع الرأس الأول.<br />
+		[page:Vector3 p2] - موقع الرأس الثاني.<br />
+		[page:Vector3 p3] - موقع الرأس الثالث.<br />
+		[page:Vector v1] - قيمة الرأس الأولى.<br />
+		[page:Vector v2] - قيمة الرأس الثانية.<br />
+		[page:Vector v3] - قيمة الرأس الثالثة.<br />
+		[page:Vector target] — سيتم نسخ النتيجة في هذا Vector.<br /><br />
+		
+		تعود بالقيمة المُركبة بشكل ثلاثي للنقطة المعطاة على المثلث.
+		</p>
+		
+		<h3>[method:Boolean intersectsBox]( [param:Box3 box] )</h3>
+		<p>
+		[page:Box3 box] - مربع للتحقق من التقاطع ضده.<br /><br />
+		
+		يحدد ما إذا كان هذا المثلث يتقاطع مع [page:Box3 box] أم لا.
+		</p>
+		
+		<h3>[method:Boolean isFrontFacing]( [param:Vector3 direction] )</h3>
+		<p>
+		[page:Vector3 direction] - الاتجاه الذي يتم اختباره.<br /><br />
+		
+		ما إذا كان المثلث موجهًا نحو الاتجاه المعطى أم لا.
+		</p>
+		
+		<h3>
+		[method:this set]( [param:Vector3 a], [param:Vector3 b], [param:Vector3 c] )
+		</h3>
+		<p>
+		يضبط خصائص المثلث [page:.a a]، [page:.b b] و [page:.c c] على [page:Vector3 vector3s] الممررة.<br />
+		يرجى ملاحظة أن هذه الطريقة تنسخ فقط القيم من الكائنات المعطاة.
+		</p>
+		
+		<h3>
+		[method:this setFromAttributeAndIndices]( [param:BufferAttribute attribute],
+		[param:Integer i0], [param:Integer i1], [param:Integer i2] )
+		</h3>
+		<p>
+		attribute - [page:BufferAttribute] من بيانات الرأس <br />
+		i0 - فهرس [page:Integer] <br />
+		i1 - فهرس [page:Integer] <br />
+		i2 - فهرس [page:Integer]<br /><br />
+		
+		يضبط رؤوس المثلث من بيانات رأس سمة الحافظة.
+		</p>
+		
+		<h3>
+		[method:this setFromPointsAndIndices]( [param:Array points], [param:Integer i0], [param:Integer i1], [param:Integer i2] )
+		</h3>
+		<p>
+		points - مصفوفة من [page:Vector3]s <br />
+		i0 - فهرس [page:Integer] <br />
+		i1 - فهرس [page:Integer] <br />
+		i2 - فهرس [page:Integer]<br /><br />
+		
+		يضبط متجهات المثلث على المتجهات في المصفوفة.
+		</p>
+		
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 353 - 0
docs/api/ar/math/Vector2.html

@@ -0,0 +1,353 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		<h1>[name]</h1>
+
+		<p class="desc">
+		فئة تمثل متجه 2D [link:https://en.wikipedia.org/wiki/Vector_space]. متجه 2D هو زوج مرتب من الأرقام (مسمى x و y)، والذي يمكن استخدامه لتمثيل عدد من الأشياء، مثل:
+		</p>
+			
+		<ul>
+		<li>نقطة في الفضاء 2D (أي موضع على مستوى).</li>
+		<li>
+		اتجاه وطول عبر مستوى. في three.js سيكون الطول دائمًا [link:https://en.wikipedia.org/wiki/Euclidean_distance الطول الإقليدي] (طول الخط المستقيم) من `(0، 0)` إلى `(x، y)` ويتم قياس الاتجاه أيضًا من `(0، 0)` نحو `(x، y)`.
+		</li>
+		<li>أي زوج مرتب عشوائي من الأرقام.</li>
+		</ul>
+			
+		<p>
+		هناك أشياء أخرى يمكن استخدام متجه 2D لتمثيلها، مثل المتجهات الزخمية، والأعداد المركبة وما إلى ذلك، ومع ذلك فإن هذه هي الاستخدامات الأكثر شيوعًا في three.js.
+		</p>
+			
+		<p>
+		التكرار عبر نسخة [name] سيعود بمكوناته `(x، y)` بالترتيب المقابل.
+		</p>
+			
+		<h2>مثال للكود</h2>
+
+		<code>
+		const a = new THREE.Vector2( 0, 1 );
+
+		//no arguments; will be initialised to (0, 0)
+		const b = new THREE.Vector2( );
+
+		const d = a.distanceTo( b );
+		</code>
+
+		<h2>المنشئ (Constructor)</h2>
+
+		<h3>[name]( [param:Float x], [param:Float y] )</h3>
+		<p>
+		[page:Float x] - قيمة x لهذا المتجه. الافتراضي هو `0`.<br />
+		[page:Float y] - قيمة y لهذا المتجه. الافتراضي هو `0`.<br /><br />
+		
+		ينشئ نسخة جديدة من [name].
+		</p>
+		
+		<h2>الخصائص (Properties)</h2>
+		
+		<h3>[property:Float height]</h3>
+		<p>اسم آخر لـ [page:.y y].</p>
+		
+		<h3>[property:Boolean isVector2]</h3>
+		<p>علامة للقراءة فقط للتحقق مما إذا كان الكائن المعطى من نوع [name].</p>
+		
+		<h3>[property:Float width]</h3>
+		<p>اسم آخر لـ [page:.x x].</p>
+		
+		<h3>[property:Float x]</h3>
+		
+		<h3>[property:Float y]</h3>
+		
+		<h2>الطرق (Methods)</h2>
+		
+		<h3>[method:this add]( [param:Vector2 v] )</h3>
+		<p>يضيف [page:Vector2 v] إلى هذا المتجه.</p>
+		
+		<h3>[method:this addScalar]( [param:Float s] )</h3>
+		<p>
+		يضيف القيمة القياسية [page:Float s] إلى قيم [page:.x x] و [page:.y y] لهذا المتجه.
+		</p>
+		
+		<h3>[method:this addScaledVector]( [param:Vector2 v], [param:Float s] )</h3>
+		<p>
+		يضيف الضعف من [page:Vector2 v] و [page:Float s] إلى هذا المتجه.
+		</p>
+		
+		<h3>[method:this addVectors]( [param:Vector2 a], [param:Vector2 b] )</h3>
+		<p>يضبط هذا المتجه على [page:Vector2 a] + [page:Vector2 b].</p>
+		
+		<h3>[method:Float angle]()</h3>
+		<p>
+		يحسب الزاوية بالراديان لهذا المتجه بالنسبة للمحور x الموجب.
+		</p>
+
+		<h3>[method:Float angleTo]( [param:Vector2 v] )</h3>
+		<p>
+		يعود بالزاوية بين هذا المتجه والمتجه [page:Vector2 v] بالراديان.
+		</p>
+		
+		<h3>[method:this applyMatrix3]( [param:Matrix3 m] )</h3>
+		<p>
+		يضرب هذا المتجه (مع 1 ضمني كمكون الثالث) في m.
+		</p>
+		
+		<h3>[method:this ceil]()</h3>
+		<p>
+		تتم جولة مكونات [page:.x x] و [page:.y y] لهذا المتجه إلى أعلى إلى أقرب قيمة صحيحة.
+		</p>
+		
+		<h3>[method:this clamp]( [param:Vector2 min], [param:Vector2 max] )</h3>
+		<p>
+		[page:Vector2 min] - الحد الأدنى لقيم x و y.<br />
+		[page:Vector2 max] - الحد الأقصى لقيم x و y في النطاق المطلوب<br /><br />
+		
+		إذا كانت قيمة x أو y لهذا المتجه أكبر من قيمة x أو y للمتجه max، يتم استبدالها بالقيمة المقابلة. <br /><br />
+		إذا كانت قيمة x أو y لهذا المتجه أقل من قيمة x أو y للمتجه min، يتم استبدالها بالقيمة المقابلة.
+		</p>
+		
+		<h3>[method:this clampLength]( [param:Float min], [param:Float max] )</h3>
+		<p>
+		[page:Float min] - الحد الأدنى الذي سيتم تثبيت الطول عليه <br />
+		[page:Float max] - الحد الأقصى الذي سيتم تثبيت الطول عليه<br /><br />
+		
+		إذا كان طول هذا المتجه أكبر من قيمة max، يتم استبداله بالقيمة max. <br /><br />
+		إذا كان طول هذا المتجه أقل من قيمة min، يتم استبداله بالقيمة min.
+		</p>
+		
+		<h3>[method:this clampScalar]( [param:Float min], [param:Float max] )</h3>
+		<p>
+		[page:Float min] - الحد الأدنى الذي ستُثبَّت عليه العناصر
+		<br />
+		[page:Float max] - الحد الأقصى الذي سُتثبَّت عليه العناصر<br /><br />
+		
+		إذا كانت قيم x أو y لهذا المتجه أكبر من قيمة max، يتم استبدالها بالقيمة max. <br /><br />
+		إذا كانت قيم x أو y لهذا المتجه أقل من قيمة min، يتم استبدالها بالقيمة min.
+		</p>
+		
+		<h3>[method:Vector2 clone]()</h3>
+		<p>
+		يعود بـ Vector2 جديد بنفس قيم [page:.x x] و [page:.y y] كهذا.
+		</p>
+		
+		<h3>[method:this copy]( [param:Vector2 v] )</h3>
+		<p>
+		ينسخ قيم خصائص [page:.x x] و [page:.y y] لـ Vector2 الممرر إلى هذا Vector2.
+		</p>
+		
+		<h3>[method:Float distanceTo]( [param:Vector2 v] )</h3>
+		<p>يحسب المسافة من هذا المتجه إلى [page:Vector2 v].</p>
+		
+		<h3>[method:Float manhattanDistanceTo]( [param:Vector2 v] )</h3>
+		<p>
+		يحسب [link:https://en.wikipedia.org/wiki/Taxicab_geometry مسافة مانهاتن] من هذا المتجه إلى [page:Vector2 v].
+		</p>
+		
+		<h3>[method:Float distanceToSquared]( [param:Vector2 v] )</h3>
+		<p>
+		يحسب المسافة المربعة من هذا المتجه إلى [page:Vector2 v]. إذا كنت تقارن فقط المسافة مع مسافة أخرى، يجب عليك مقارنة المسافة المربعة بدلاً من ذلك لأنه أكثر كفاءة قليلاً في الحساب.
+		</p>
+		
+		<h3>[method:this divide]( [param:Vector2 v] )</h3>
+		<p>يقسم هذا المتجه على [page:Vector2 v].</p>
+		
+		<h3>[method:this divideScalar]( [param:Float s] )</h3>
+		<p>يقسم هذا المتجه على العدد القياسي [page:Float s].</p>
+		
+		<h3>[method:Float dot]( [param:Vector2 v] )</h3>
+		<p>
+		يحسب [link:https://en.wikipedia.org/wiki/Dot_product حاصل الضرب النقطي] لهذا المتجه و [page:Vector2 v].
+		</p>
+		
+		<h3>[method:Float cross]( [param:Vector2 v] )</h3>
+		<p>
+		يحسب [link:https://en.wikipedia.org/wiki/Cross_product حاصل الضرب المتقاطع] لهذا المتجه و [page:Vector2 v]. يرجى ملاحظة أن "حاصل الضرب المتقاطع" في 2D غير محدد بشكل جيد. تحسب هذه الوظيفة حاصل ضرب متقاطع هندسي يستخدم في الغالب في رسومات 2D
+		</p>
+		
+		<h3>[method:Boolean equals]( [param:Vector2 v] )</h3>
+		<p>
+		يعود بـ `true` إذا كانت مكونات هذا المتجه و [page:Vector2 v] متطابقة بدقة؛ `false` في حالة عدم ذلك.
+		</p>
+		
+		<h3>[method:this floor]()</h3>
+		<p>
+		تتم جولة مكونات هذا المتجه إلى أسفل إلى أقرب قيمة صحيحة.
+		</p>
+		
+		<h3>
+		[method:this fromArray]( [param:Array array], [param:Integer offset] )
+		</h3>
+		<p>
+		[page:Array array] - المصفوفة المصدر.<br />
+		[page:Integer offset] - (اختياري) إزاحة في المصفوفة. الافتراضي هو 0.<br /><br />
+		
+		يضبط قيمة [page:.x x] لهذا المتجه على `array[ offset ]` وقيمة [page:.y y] على `array[ offset + 1 ]`.
+		</p>
+		
+		<h3>
+		[method:this fromBufferAttribute]( [param:BufferAttribute attribute], [param:Integer index] )
+		</h3>
+		<p>
+		[page:BufferAttribute attribute] - السمة المصدر.<br />
+		[page:Integer index] - فهرس في السمة.<br /><br />
+		
+		يضبط قيم [page:.x x] و [page:.y y] لهذا المتجه من [page:BufferAttribute attribute].
+		</p>
+		
+		<h3>[method:Float getComponent]( [param:Integer index] )</h3>
+		<p>
+		[page:Integer index] - 0 أو 1.<br /><br />
+		
+		إذا كان index يساوي 0 يعود بقيمة [page:.x x]. <br />
+		إذا كان index يساوي 1 يعود بقيمة [page:.y y].
+		</p>
+		
+		<h3>[method:Float length]()</h3>
+		<p>
+		يحسب [link:https://en.wikipedia.org/wiki/Euclidean_distance الطول الإقليدي] (طول الخط المستقيم) من (0، 0) إلى (x، y).
+		</p>
+		
+		<h3>[method:Float manhattanLength]()</h3>
+		<p>
+		يحسب [link:http://en.wikipedia.org/wiki/Taxicab_geometry طول مانهاتن] لهذا المتجه.
+		</p>
+
+		<h3>[method:Float lengthSq]()</h3>
+		<p>
+		يحسب مربع [link:https://en.wikipedia.org/wiki/Euclidean_distance الطول الإقليدي] (طول الخط المستقيم) من (0، 0) إلى (x، y). إذا كنت تقارن أطوال المتجهات، يجب عليك مقارنة الطول المربع بدلاً من ذلك لأنه أكثر كفاءة قليلاً في الحساب.
+		</p>
+		
+		<h3>[method:this lerp]( [param:Vector2 v], [param:Float alpha] )</h3>
+		<p>
+		[page:Vector2 v] - [page:Vector2] للتداخل نحوه.<br />
+		[page:Float alpha] - عامل التداخل، عادة في الفترة المغلقة `[0، 1]`.<br /><br />
+		
+		يتداخل بشكل خطي بين هذا المتجه و [page:Vector2 v]، حيث alpha هو نسبة المسافة على طول الخط - سيكون alpha = 0 هذا المتجه، وسيكون alpha = 1 [page:Vector2 v].
+		</p>
+		
+		<h3>
+		[method:this lerpVectors]( [param:Vector2 v1], [param:Vector2 v2], [param:Float alpha] )
+		</h3>
+		<p>
+		[page:Vector2 v1] - [page:Vector2] البداية.<br />
+		[page:Vector2 v2] - [page:Vector2] للتداخل نحوه.<br />
+		[page:Float alpha] - عامل التداخل، عادة في الفترة المغلقة `[0، 1]`.<br /><br />
+		
+		يضبط هذا المتجه ليكون المتجه المُركب بشكل خطي بين [page:Vector2 v1] و [page:Vector2 v2] حيث alpha هو نسبة المسافة على طول الخط الذي يربط بين المتجهين - سيكون alpha = 0 [page:Vector2 v1]، وسيكون alpha = 1 [page:Vector2 v2].
+		</p>
+		
+		<h3>[method:this negate]()</h3>
+		<p>يعكس هذا المتجه - أي يضع x = -x و y = -y.</p>
+		
+		<h3>[method:this normalize]()</h3>
+		<p>
+		يحول هذا المتجه إلى [link:https://en.wikipedia.org/wiki/Unit_vector متجه وحدة] -
+		أي يضعه مساوٍ لمتجه بنفس الاتجاه
+		كهذا، ولكن [page:.length length] 1.
+		</p>
+		
+		<h3>[method:this max]( [param:Vector2 v] )</h3>
+		<p>
+		إذا كانت قيمة x أو y لهذا المتجه أقل من قيمة x أو y لـ [page:Vector2 v]، استبدل تلك القيمة بالقيمة العظمى المقابلة.
+		</p>
+		
+		<h3>[method:this min]( [param:Vector2 v] )</h3>
+		<p>
+		إذا كانت قيمة x أو y لهذا المتجه أكبر من قيمة x أو y لـ [page:Vector2 v]، استبدل تلك القيمة بالقيمة الدنيا المقابلة.
+		</p>
+		
+		<h3>[method:this multiply]( [param:Vector2 v] )</h3>
+		<p>يضرب هذا المتجه في [page:Vector2 v].</p>
+		
+		<h3>[method:this multiplyScalar]( [param:Float s] )</h3>
+		<p>يضرب هذا المتجه في العدد القياسي [page:Float s].</p>
+		
+		<h3>
+		[method:this rotateAround]( [param:Vector2 center], [param:Float angle] )
+		</h3>
+		<p>
+		[page:Vector2 center] - النقطة التي يتم التدوير حولها.<br />
+		[page:Float angle] - الزاوية التي يتم التدوير بها، بالراديان.<br /><br />
+		
+		يدور هذا المتجه حول [page:Vector2 center] بـ [page:Float angle] راديان.
+		</p>
+		
+		<h3>[method:this round]()</h3>
+		<p>
+		تتم جولة مكونات هذا المتجه إلى أقرب قيمة صحيحة.
+		</p>
+		
+		<h3>[method:this roundToZero]()</h3>
+		<p>
+		تتم جولة مكونات هذا المتجه نحو الصفر (لأعلى إذا كان سالبًا، لأسفل إذا كان موجبًا) إلى قيمة صحيحة.
+		</p>
+		
+		<h3>[method:this set]( [param:Float x], [param:Float y] )</h3>
+		<p>يضبط مكونات [page:.x x] و [page:.y y] لهذا المتجه.</p>
+		
+		<h3>
+		[method:this setComponent]( [param:Integer index], [param:Float value] )
+		</h3>
+		<p>
+		[page:Integer index] - 0 أو 1.<br />
+		[page:Float value] - [page:Float]<br /><br />
+		
+		إذا كان index يساوي 0 ضع [page:.x x] على [page:Float value]. <br />
+		إذا كان index يساوي 1 ضع [page:.y y] على [page:Float value]
+		</p>
+		
+		<h3>[method:this setLength]( [param:Float l] )</h3>
+		<p>
+		يضبط هذا المتجه على متجه بنفس الاتجاه كهذا، ولكن [page:.length length] [page:Float l].
+		</p>
+		
+		<h3>[method:this setScalar]( [param:Float scalar] )</h3>
+		<p>
+		يضبط قيم [page:.x x] و [page:.y y] لهذا المتجه على حد سواء مساوية لـ [page:Float scalar].
+		</p>
+		
+		<h3>[method:this setX]( [param:Float x] )</h3>
+		<p>يستبدل قيمة [page:.x x] لهذا المتجه بـ [page:Float x].</p>
+		
+		<h3>[method:this setY]( [param:Float y] )</h3>
+		<p>يستبدل قيمة [page:.y y] لهذا المتجه بـ [page:Float y].</p>
+		
+		<h3>[method:this sub]( [param:Vector2 v] )</h3>
+		<p>يطرح [page:Vector2 v] من هذا المتجه.</p>
+		
+		<h3>[method:this subScalar]( [param:Float s] )</h3>
+		<p>
+		يطرح [page:Float s] من مكونات [page:.x x] و [page:.y y] لهذا المتجه.
+		</p>
+		
+		<h3>[method:this subVectors]( [param:Vector2 a], [param:Vector2 b] )</h3>
+		<p>يضبط هذا المتجه على [page:Vector2 a] - [page:Vector2 b].</p>
+		
+		<h3>
+		[method:Array toArray]( [param:Array array], [param:Integer offset] )
+		</h3>
+		<p>
+		[page:Array array] - (اختياري) مصفوفة لتخزين هذا المتجه فيها. إذا لم يتم توفير هذا، سيتم إنشاء مصفوفة جديدة.<br />
+		[page:Integer offset] - (اختياري) إزاحة اختيارية في المصفوفة.<br /><br />
+		
+		يرجع مصفوفة [x، y]، أو ينسخ x و y في المصفوفة المعطاة من نوع [page:Array array].
+		</p>
+		
+		<h3>[method:this random]()</h3>
+		<p>
+		يضبط كل مكون من مكونات هذا المتجه على قيمة شبه عشوائية بين 0 و 1، باستثناء 1.
+		</p>
+
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 523 - 0
docs/api/ar/math/Vector3.html

@@ -0,0 +1,523 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		<h1>[name]</h1>
+
+		<p class="desc">
+		فئة تمثل [link:https://en.wikipedia.org/wiki/Vector_space متجه] ثلاثي الأبعاد.
+		متجه ثلاثي الأبعاد هو ثلاثي مرتب من الأرقام (مسمى x و y و z) ، والذي يمكن استخدامه لتمثيل عدد من الأشياء ، مثل:
+		</p>
+			
+		<ul>
+			<li>نقطة في الفضاء ثلاثي الأبعاد.</li>
+			<li>
+			اتجاه وطول في الفضاء ثلاثي الأبعاد. في three.js سيكون الطول دائمًا
+			[link:https://en.wikipedia.org/wiki/Euclidean_distance المسافة الإقليدية]
+			(المسافة المستقيمة) من `(0, 0, 0)` إلى `(x, y, z)` و
+			يتم قياس الاتجاه أيضًا من `(0, 0, 0)` نحو `(x, y, z)`.
+			</li>
+			<li>أي ثلاثي مرتب عشوائي من الأرقام.</li>
+		</ul>
+			
+		<p>
+		هناك أشياء أخرى يمكن استخدام متجه ثلاثي الأبعاد لتمثيلها ، مثل
+		متجهات الزخم وما إلى ذلك ، ومع ذلك فإن هذه هي الاستخدامات الأكثر شيوعًا في
+		three.js.
+		</p>
+			
+		<p>
+		التكرار عبر مثيل [name] سوف ينتج عنه مكوناته `(x, y, z)`
+		بالترتيب المقابل.
+		</p>
+			
+		<h2>مثال للكود</h2>
+		<code>
+		const a = new THREE.Vector3( 0, 1, 0 );
+
+		//no arguments; will be initialised to (0, 0, 0)
+		const b = new THREE.Vector3( );
+
+		const d = a.distanceTo( b );
+		</code>
+
+		<h2>المنشئ (Constructor)</h2>
+
+		<h3>[name]( [param:Float x], [param:Float y], [param:Float z] )</h3>
+		<p>
+		[page:Float x] - قيمة x لهذا الفيكتور. القيمة الافتراضية هي `0`. <br />
+		[page:Float y] - قيمة y لهذا الفيكتور. القيمة الافتراضية هي `0`. <br />
+		[page:Float z] - قيمة z لهذا الفيكتور. القيمة الافتراضية هي `0`. <br /><br />
+		
+		ينشئ [name] جديد.
+		</p>
+		
+		<h2>الخصائص (Properties)</h2>
+		
+		<h3>[property:Boolean isVector3]</h3>
+		<p>علامة للتحقق مما إذا كان الكائن المعطى من نوع [name] أم لا.</p>
+		
+		<h3>[property:Float x]</h3>
+		
+		<h3>[property:Float y]</h3>
+		
+		<h3>[property:Float z]</h3>
+		
+		<h2>الوظائف (Methods)</h2>
+		
+		<h3>[method:this add]( [param:Vector3 v] )</h3>
+		<p>يضيف [page:Vector3 v] إلى هذا الفيكتور.</p>
+		
+		<h3>[method:this addScalar]( [param:Float s] )</h3>
+		<p>
+		يضيف قيمة العدد s إلى قيم [page:.x x]، [page:.y y] و [page:.z z] لهذا الفيكتور.
+		</p>
+		
+		<h3>[method:this addScaledVector]( [param:Vector3 v], [param:Float s] )</h3>
+		<p>
+		يضيف الضرب المتعدد لـ [page:Vector3 v] و [page:Float s] إلى هذا الفيكتور.
+		</p>
+		
+		<h3>[method:this addVectors]( [param:Vector3 a], [param:Vector3 b] )</h3>
+		<p>يعيد هذا الفيكتور إلى [page:Vector3 a] + [page:Vector3 b].</p>
+		
+		<h3>
+		[method:this applyAxisAngle]( [param:Vector3 axis], [param:Float angle] )
+		</h3>
+		<p>
+		[page:Vector3 axis] - محور [page:Vector3] موحّد.<br />
+		[page:Float angle] - زاوية بالراديان.<br /><br />
+		
+		يطبق تحويلًا يُحدد بواسطة محور وزاوية على هذا الفيكتور.
+		</p>
+		
+		<h3>[method:this applyEuler]( [param:Euler euler] )</h3>
+		<p>
+		يطبق تحويل أويلر على هذا الفيكتور من خلال تحويل الكائن [page:Euler]
+		إلى [page:Quaternion] وتطبيقه.
+		</p>
+		
+		<h3>[method:this applyMatrix3]( [param:Matrix3 m] )</h3>
+		<p>يضرب هذا الفيكتور بواسطة [page:Matrix3 m].</p>
+		
+		<h3>[method:this applyMatrix4]( [param:Matrix4 m] )</h3>
+		<p>
+		يضرب هذا الفيكتور (مع وجود 1 ضمن الأبعاد الرابعة) بـ m، ويقسمه على
+		التوازن.
+		</p>
+		
+		<h3>[method:this applyNormalMatrix]( [param:Matrix3 m] )</h3>
+		<p>
+		يضرب هذا الفيكتور بواسطة مصفوفة القوامة العادية [page:Matrix3 m] ويقوم
+		بتطبيع النتيجة.
+		</p>
+		
+		<h3>[method:this applyQuaternion]( [param:Quaternion quaternion] )</h3>
+		<p>يطبق تحويل [page:Quaternion] على هذا الفيكتور.</p>
+		
+		<h3>[method:Float angleTo]( [param:Vector3 v] )</h3>
+		<p>
+		يعيد الزاوية بين هذا الفيكتور وفيكتور [page:Vector3 v] بالراديان.
+		</p>
+		
+		<h3>[method:this ceil]()</h3>
+		<p>
+		يقوم بتقريب مكونات [page:.x x]، [page:.y y] و [page:.z z] لهذا الفيكتور إلى
+		أقرب قيمة صحيحة.
+		</p>
+		
+		<h3>[method:this clamp]( [param:Vector3 min], [param:Vector3 max] )</h3>
+		<p>
+		[page:Vector3 min] - القيم [page:.x x]، [page:.y y] و [page:.z z] الدنيا.<br />
+		[page:Vector3 max] - القيم [page:.x x]، [page:.y y] و [page:.z z] العليا في النطاق المطلوب.<br /><br />
+		
+		إذا كانت قيم x أو y أو z لهذا الفيكتور أكبر من قيم x أو y أو z العليا للفيكتور، يتم استبدالها بالقيم المقابلة. <br /><br />
+		إذا كانت قيم x أو y أو z لهذا الفيكتور أقل من قيم x أو y أو z الدنيا للفيكتور، يتم استبدالها بالقيم المقابلة.
+		</p>
+		
+
+		<h3>[method:this clampLength]( [param:Float min], [param:Float max] )</h3>
+		<p>
+		[page:Float min] - القيمة الدنيا التي ستتم تقييدها للطول <br />
+		[page:Float max] - القيمة العليا التي ستتم تقييدها للطول<br /><br />
+		
+		إذا كان طول هذا الفيكتور أكبر من القيمة العليا، سيتم تصغير الفيكتور بحيث يصبح طوله هو القيمة العليا. <br /><br />
+		إذا كان طول هذا الفيكتور أقل من القيمة الدنيا، سيتم تكبير الفيكتور بحيث يصبح طوله هو القيمة الدنيا.
+		</p>
+		
+		<h3>[method:this clampScalar]( [param:Float min], [param:Float max] )</h3>
+		<p>
+		[page:Float min] - القيمة الدنيا التي ستتم تقييدها للمكونات
+		<br />
+		[page:Float max] - القيمة العليا التي ستتم تقييدها للمكونات<br /><br />
+		
+		إذا كانت قيم x أو y أو z لهذا الفيكتور أكبر من القيمة العليا، سيتم استبدالها بالقيمة العليا. <br /><br />
+		إذا كانت قيم x أو y أو z لهذا الفيكتور أقل من القيمة الدنيا، سيتم استبدالها بالقيمة الدنيا.
+		</p>
+		
+		<h3>[method:Vector3 clone]()</h3>
+		<p>
+		يعيد فيكتور3 جديدًا بنفس القيم x، y، و z كهذا الفيكتور.
+		</p>
+		
+		<h3>[method:this copy]( [param:Vector3 v] )</h3>
+		<p>
+		ينسخ قيم خصائص x، y، و z لفيكتور3 الممرر إلى هذا الفيكتور.
+		</p>
+		
+		<h3>[method:this cross]( [param:Vector3 v] )</h3>
+		<p>
+		يضبط هذا الفيكتور إلى ناتج الضرب النقطي بينه وبين Vector3 v.
+		</p>
+		
+		<h3>[method:this crossVectors]( [param:Vector3 a], [param:Vector3 b] )</h3>
+		<p>
+		يضبط هذا الفيكتور إلى ناتج الضرب النقطي بين Vector3 a و Vector3 b.
+		</p>
+		
+		<h3>[method:Float distanceTo]( [param:Vector3 v] )</h3>
+		<p>يحسب المسافة من هذا الفيكتور إلى Vector3 v.</p>
+
+		<h3>[method:Float manhattanDistanceTo]( [param:Vector3 v] )</h3>
+		<p>
+		يحسب [link:https://en.wikipedia.org/wiki/Taxicab_geometry Manhattan distance] 
+		من هذا المتجه إلى [page:Vector3 v].
+		</p>
+	 
+		<h3>[method:Float distanceToSquared]( [param:Vector3 v] )</h3>
+		<p>
+		يحسب المسافة المربعة من هذا المتجه إلى [page:Vector3 v]. إذا كنت
+		تقارن المسافة مع مسافة أخرى، يجب عليك مقارنة
+		المسافة المربعة بدلاً من ذلك كما هو أكثر كفاءة قليلاً في
+		الحساب.
+		</p>
+	 
+		<h3>[method:this divide]( [param:Vector3 v] )</h3>
+		<p>يقسم هذا المتجه بواسطة [page:Vector3 v].</p>
+	 
+		<h3>[method:this divideScalar]( [param:Float s] )</h3>
+		<p>يقسم هذا المتجه بواسطة العدد الفردي [page:Float s].</p>
+	 
+		<h3>[method:Float dot]( [param:Vector3 v] )</h3>
+		<p>
+		حساب [link:https://en.wikipedia.org/wiki/Dot_product dot product]
+		لهذا المتجه و[page:Vector3 v].
+		</p>
+	 
+		<h3>[method:Boolean equals]( [param:Vector3 v] )</h3>
+		<p>
+		يعود `true` إذا كانت مكونات هذا المتجه و[page:Vector3 v] هي
+		صارمة متساوية؛ `false` في حالات أخرى.
+		</p>
+	 
+		<h3>[method:this floor]()</h3>
+		<p>
+		يتم تقريب مكونات هذا المتجه إلى أسفل إلى أقرب قيمة صحيحة
+		قيمة.
+		</p>
+	 
+		<h3>
+		[method:this fromArray]( [param:Array array], [param:Integer offset] )
+		</h3>
+		<p>
+		[page:Array array] - المصفوفة المصدر.<br />
+		[page:Integer offset] - ( اختياري) الإزاحة في المصفوفة. الافتراضي هو
+		0.<br /><br />
+	 
+		يضع قيمة هذا المتجه [page:.x x] لتكون `array[ offset + 0 ]`، قيمة [page:.y y]
+		لتكون `array[ offset + 1 ]` وقيمة [page:.z z] لتكون `array[ offset + 2 ]`.
+		</p>
+	 
+		<h3>
+		[method:this fromBufferAttribute]( [param:BufferAttribute attribute], [param:Integer index] )
+		</h3>
+		<p>
+		[page:BufferAttribute attribute] - السمة المصدر.<br />
+		[page:Integer index] - الفهرس في السمة.<br /><br />
+		 
+		يضع قيم هذا المتجه [page:.x x]، [page:.y y] و [page:.z z] من
+		ال[page:BufferAttribute attribute].
+		</p>
+		 
+		<h3>[method:Float getComponent]( [param:Integer index] )</h3>
+		<p>
+		[page:Integer index] - 0، 1 أو 2.<br /><br />
+		 
+		إذا كان الفهرس يساوي 0 يعيد قيمة [page:.x x]. <br />
+		إذا كان الفهرس يساوي 1 يعيد قيمة [page:.y y]. <br />
+		إذا كان الفهرس يساوي 2 يعيد قيمة [page:.z z].
+		</p>
+		 
+		<h3>[method:Float length]()</h3>
+		<p>
+		يحسب [link:https://en.wikipedia.org/wiki/Euclidean_distance الطول الإقليدي]
+		(طول الخط المستقيم) من (0، 0، 0) إلى (x، y، z).
+		</p>
+		 
+		<h3>[method:Float manhattanLength]()</h3>
+		<p>
+		يحسب طول مانهاتن
+		لهذا المتجه.
+		</p>
+		 
+		<h3>[method:Float lengthSq]()</h3>
+		<p>
+		يحسب مربع
+		[link:https://en.wikipedia.org/wiki/Euclidean_distance الطول الإقليدي]
+		(طول الخط المستقيم) من (0، 0، 0) إلى (x، y، z). إذا كنت تقارن
+		أطوال المتجهات، يجب عليك مقارنة طول المربع بدلاً من ذلك كما
+		أنه أكثر كفاءة قليلاً في الحساب.
+		</p>
+		 
+		<h3>[method:this lerp]( [param:Vector3 v], [param:Float alpha] )</h3>
+		<p>
+		[page:Vector3 v] - [page:Vector3] للتداخل نحوه.<br />
+		[page:Float alpha] - عامل التداخل، عادة في المغلق
+		الفاصل `[0, 1]`.<br /><br />
+		 
+		تداخل خطي بين هذا المتجه و[page:Vector3 v]، حيث alpha
+		هو نسبة المسافة على طول الخط - alpha = 0 سيكون هذا المتجه،
+		وalpha = 1 ستكون [page:Vector3 v].
+		</p>
+
+		<h3>
+		[method:this lerpVectors]( [param:Vector3 v1], [param:Vector3 v2], [param:Float alpha] )
+		</h3>
+		<p>
+		[page:Vector3 v1] - البداية [page:Vector3].<br />
+		[page:Vector3 v2] - [page:Vector3] للتداخل نحوه.<br />
+		[page:Float alpha] - عامل التداخل، عادة في الفاصل المغلق
+		`[0، 1]`.<br /><br />
+		 
+		يضع هذا المتجه ليكون المتجه المتداخل خطيًا بين
+		[page:Vector3 v1] و [page:Vector3 v2] حيث يكون ألفا هو النسبة
+		المئوية للمسافة على طول الخط الذي يربط المتجهين - سيكون ألفا = 0
+		[page:Vector3 v1]، وسيكون ألفا = 1 [page:Vector3 v2].
+		</p>
+		 
+		<h3>[method:this max]( [param:Vector3 v] )</h3>
+		<p>
+		إذا كانت قيمة x أو y أو z لهذا المتجه أقل من قيمة x أو y أو z
+		لـ [page:Vector3 v]، استبدل تلك القيمة بالقيمة القصوى المقابلة.
+		</p>
+		 
+		<h3>[method:this min]( [param:Vector3 v] )</h3>
+		<p>
+		إذا كانت قيمة x أو y أو z لهذا المتجه أكبر من قيمة x أو y
+		أو z لـ [page:Vector3 v]، استبدل تلك القيمة بالقيمة الدنيا المقابلة.
+		</p>
+		 
+		<h3>[method:this multiply]( [param:Vector3 v] )</h3>
+		<p>يضرب هذا المتجه بـ [page:Vector3 v].</p>
+		 
+		<h3>[method:this multiplyScalar]( [param:Float s] )</h3>
+		<p>يضرب هذا المتجه بالعدد القائم [page:Float s].</p>
+		 
+		<h3>
+		[method:this multiplyVectors]( [param:Vector3 a], [param:Vector3 b] )
+		</h3>
+		<p>
+		يضع هذا المتجه يساوي [page:Vector3 a] * [page:Vector3 b]،
+		مكونًا حكيمًا.
+		</p>
+		 
+		<h3>[method:this negate]()</h3>
+		<p>يعكس هذا المتجه - أي يضع x = -x، y = -y و z = -z.</p>
+		 
+		<h3>[method:this normalize]()</h3>
+		<p>
+		تحويل هذا المتجه إلى متجه وحدة 
+		- أي يضعه يساوي متجه بنفس الاتجاه
+		كهذا واحد، ولكن طول الصفحة 1.
+		</p>
+
+		<h3>[method:this project]( [param:Camera camera] )</h3>
+		<p>
+		[page:Camera camera] — الكاميرا المستخدمة في الإسقاط.<br /><br />
+	 
+		يسقط هذا المتجه من مساحة العالم إلى مساحة جهاز الكاميرا المعيارية
+		(NDC).
+		</p>
+	 
+		<h3>[method:this projectOnPlane]( [param:Vector3 planeNormal] )</h3>
+		<p>
+		[page:Vector3 planeNormal] - متجه يمثل عادي الطائرة.<br /><br />
+	 
+		[link:https://en.wikipedia.org/wiki/Vector_projection يسقط] هذا
+		المتجه على طائرة عن طريق طرح هذا المتجه المسقط على عادي الطائرة من هذا
+		المتجه.
+		</p>
+	 
+		<h3>[method:this projectOnVector]( [param:Vector3 v] )</h3>
+		<p>
+		[link:https://en.wikipedia.org/wiki/Vector_projection يسقط] هذا
+		المتجه على [page:Vector3 v].
+		</p>
+	 
+		<h3>[method:this reflect]( [param:Vector3 normal] )</h3>
+		<p>
+		[page:Vector3 normal] - العادي إلى طائرة الانعكاس<br /><br />
+	 
+		يعكس هذا المتجه قبالة طائرة متعامدة على [page:Vector3 normal].
+		يفترض أن يكون العادي لديه طول وحدة.
+		</p>
+	 
+		<h3>[method:this round]()</h3>
+		<p>
+		تتم جولة مكونات هذا المتجه إلى أقرب قيمة صحيحة.
+		</p>
+	 
+		<h3>[method:this roundToZero]()</h3>
+		<p>
+		تتم جولة مكونات هذا المتجه نحو الصفر (لأعلى إذا كان سالبًا،
+		لأسفل إذا كان إيجابيًا) إلى قيمة صحيحة.
+		</p>
+	 
+		<h3>
+		[method:this set]( [param:Float x], [param:Float y], [param:Float z] )
+		</h3>
+		<p>
+		يضبط مكونات [page:.x x]، [page:.y y] و [page:.z z] من هذا
+		المتجه.
+		</p>
+	 
+		<h3>
+		[method:this setComponent]( [param:Integer index], [param:Float value] )
+		</h3>
+		<p>
+		[page:Integer index] - 0، 1 أو 2.<br />
+		[page:Float value] - [page:Float]<br /><br />
+			
+		إذا كان index يساوي 0 يضبط [page:.x x] على [page:Float value].<br />
+		إذا كان index يساوي 1 يضبط [page:.y y] على [page:Float value].<br />
+		إذا كان index يساوي 2 يضبط [page:.z z] على [page:Float value]
+		</p>
+			
+		<h3>[method:this setFromColor]( [param:Color color] )</h3>
+		<p>
+		يضبط مكونات [page:.x x] و [page:.y y] و [page:.z z] لهذا المتجه من مكونات r و g و b لـ[page:Color color] المحدد.
+		</p>
+			
+		<h3>[method:this setFromCylindrical]( [param:Cylindrical c] )</h3>
+		<p>
+		يضبط هذا المتجه من الإحداثيات الأسطوانية [page:Cylindrical c].
+		</p>
+			
+		<h3>
+		[method:this setFromCylindricalCoords]( [param:Float radius], [param:Float theta], [param:Float y] )
+		</h3>
+		<p>
+		يضبط هذا المتجه من الإحداثيات الأسطوانية [page:Cylindrical radius]، و[page:Cylindrical theta] و[page:Cylindrical y].
+		</p>
+			
+		<h3>[method:this setFromEuler]( [param:Euler euler] )</h3>
+		<p>
+		يضبط مكونات [page:.x x] و[page:.y y] و[page:.z z] لهذا المتجه من مكونات x و y و z لـ[page:Euler Euler Angle] المحدد.
+		</p>
+			
+		<h3>
+		[method:this setFromMatrixColumn]( [param:Matrix4 matrix], [param:Integer index] )
+		</h3>
+		<p>
+		يضبط مكونات [page:.x x] و[page:.y y] و[page:.z z] لهذا المتجه من العمود [page:Integer index] من [page:Matrix4 matrix].
+		</p>
+			
+		<h3>
+		[method:this setFromMatrix3Column]( [param:Matrix3 matrix], [param:Integer index] )
+		</h3>
+		<p>
+		يضبط مكونات [page:.x x] و [page:.y y] و [page:.z z] لهذا المتجه من العمود [page:Integer index] من [page:Matrix3 matrix].
+		</p>
+			
+		<h3>[method:this setFromMatrixPosition]( [param:Matrix4 m] )</h3>
+		<p>
+		يضبط هذا المتجه على عناصر الموضع لـ [link:https://en.wikipedia.org/wiki/Transformation_matrix مصفوفة التحويل] [page:Matrix4 m].
+		</p>
+			
+		<h3>[method:this setFromMatrixScale]( [param:Matrix4 m] )</h3>
+		<p>
+		يضبط هذا المتجه على عناصر الحجم لـ [link:https://en.wikipedia.org/wiki/Transformation_matrix مصفوفة التحويل] [page:Matrix4 m].
+		</p>
+			
+		<h3>[method:this setFromSpherical]( [param:Spherical s] )</h3>
+		<p>يضبط هذا المتجه من الإحداثيات الكروية [page:Spherical s].</p>
+			
+		<h3>
+		[method:this setFromSphericalCoords]( [param:Float radius], [param:Float phi], [param:Float theta] )
+		</h3>
+		<p>
+		يضبط هذا المتجه من الإحداثيات الكروية [page:Spherical radius]، و[page:Spherical phi] و[page:Spherical theta].
+		</p>
+			
+		<h3>[method:this setLength]( [param:Float l] )</h3>
+		<p>
+		يضبط هذا المتجه على متجه بنفس اتجاه هذا، ولكن بـ [page:.length length] يساوي [page:Float l].
+		</p>
+			
+		<h3>[method:this setScalar]( [param:Float scalar] )</h3>
+		<p>
+		يضبط قيمة كل من [page:.x x] و[page:.y y] و[page:.z z] لهذا المتجه على قيمة مساوية لـ[page:Float scalar].
+		</p>
+			
+		<h3>[method:this setX]( [param:Float x] )</h3>
+		<p>يستبدل قيمة [page:.x x] لهذا المتجه بـ[page:Float x].</p>
+			
+		<h3>[method:this setY]( [param:Float y] )</h3>
+		<p>يستبدل قيمة [page:.y y] لهذا المتجه بـ[page:Float y].</p>
+			
+		<h3>[method:this setZ]( [param:Float z] )</h3>
+		<p>يستبدل قيمة [page:.z z] لهذا المتجه بـ[page:Float z].</p>
+			
+		<h3>[method:this sub]( [param:Vector3 v] )</h3>
+		<p>يطرح [page:Vector3 v] من هذا المتجه.</p>
+
+		<h3>[method:this subScalar]( [param:Float s] )</h3>
+		<p>
+		يطرح [page:Float s] من مكونات [page:.x x] و [page:.y y] و [page:.z z] لهذا المتجه.
+		</p>
+		
+		<h3>[method:this subVectors]( [param:Vector3 a], [param:Vector3 b] )</h3>
+		<p>يضبط هذا المتجه على [page:Vector3 a] - [page:Vector3 b].</p>
+		
+		<h3>
+		[method:Array toArray]( [param:Array array], [param:Integer offset] )
+		</h3>
+		<p>
+		[page:Array array] - (اختياري) مصفوفة لتخزين هذا المتجه فيها. إذا لم يتم توفير هذا، سيتم إنشاء مصفوفة جديدة.<br />
+		[page:Integer offset] - (اختياري) إزاحة اختيارية في المصفوفة.<br /><br />
+		
+		يرجع مصفوفة [x، y، z]، أو ينسخ x و y و z في المصفوفة المعطاة من نوع [page:Array array].
+		</p>
+		
+		<h3>[method:this transformDirection]( [param:Matrix4 m] )</h3>
+		<p>
+		يحول اتجاه هذا المتجه بمصفوفة (المجموعة العلوية اليسرى 3 × 3 من [page:Matrix4 m]) ثم يقوم بـ [page:.normalize تطبيع] النتيجة.
+		</p>
+		
+		<h3>[method:this unproject]( [param:Camera camera] )</h3>
+		<p>
+		[page:Camera camera] — الكاميرا المستخدمة في الإسقاط.<br /><br />
+		
+		يُسقِط هذا المتجه من مساحة الجهاز المعيارية للكاميرا (NDC) إلى مساحة العالم.
+		</p>
+		
+		<h3>[method:this random]()</h3>
+		<p>
+		يضبط كل مكون من مكونات هذا المتجه على قيمة شبه عشوائية بين 0 و 1، باستثناء 1.
+		</p>
+		
+		<h3>[method:this randomDirection]()</h3>
+		<p>يضبط هذا المتجه على نقطة عشوائية موحدة على كرة وحدة.</p>
+		
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 392 - 0
docs/api/ar/math/Vector4.html

@@ -0,0 +1,392 @@
+<!DOCTYPE html>
+<html lang="ar">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body class="rtl">
+		<h1>[name]</h1>
+
+		<p class="desc">
+		تمثل الفئة متجه 4D [link:https://en.wikipedia.org/wiki/Vector_space vector].
+		متجه 4D هو رباعي من الأرقام المرتبة (مسمى x و y و z و w) ، والذي يمكن استخدامه لتمثيل عدد من الأشياء ، مثل:
+		</p>
+		 
+		<ul>
+		<li>نقطة في الفضاء 4D.</li>
+		<li>
+		اتجاه وطول في الفضاء 4D. في three.js ، سيكون الطول دائمًا
+		[link:https://en.wikipedia.org/wiki/Euclidean_distance المسافة الإقليدية]
+		(المسافة المستقيمة) من `(0، 0، 0، 0)` إلى `(x، y، z، w)`
+		ويتم قياس الاتجاه أيضًا من `(0، 0، 0، 0)` نحو `(x، y، z، w)`.
+		</li>
+		<li>أي رباعي مرتب عشوائي من الأرقام.</li>
+		</ul>
+		 
+		<p>
+		هناك أشياء أخرى يمكن استخدام متجه 4D لتمثيلها ، ولكن هذه هي
+		الاستخدامات الأكثر شيوعًا في *three.js*.
+		</p>
+		 
+		<p>
+		التكرار عبر مثيل [name] سيعطي مكوناته `(x، y، z، w)` بالترتيب المقابل.
+		</p>
+		 
+		<h2>مثال للكود</h2>
+		 
+		<code>
+		const a = new THREE.Vector4( 0, 1, 0, 0 );
+		 
+		//لا معاملات؛ سيتم تهيئته إلى (0 ، 0 ، 0 ، 1)
+		const b = new THREE.Vector4( );
+		 
+		const d = a.dot( b );
+		</code>
+		 
+		<h2>المنشئ (Constructor)</h2>
+		 
+		<h3>
+		[name]( [param:Float x], [param:Float y], [param:Float z], [param:Float w] )
+		</h3>
+		<p>
+		[page:Float x] - قيمة x لهذا المتجه. الافتراضية هي `0`.<br />
+		[page:Float y] - قيمة y لهذا المتجه. الافتراضية هي `0`.<br />
+		[page:Float z] - قيمة z لهذا المتجه. الافتراضية هي `0`.<br />
+		[page:Float w] - قيمة w لهذا المتجه. الافتراضية هي `1`.<br /><br />
+		 
+		ينشئ جديدًا [name].
+		</p>
+		 
+		<h2>الخصائص (Properties)</h2>
+		 
+		<h3>[property:Boolean isVector4]</h3>
+		<p>علامة للقراءة فقط للتحقق مما إذا كان كائنًا معطىً من نوع [name].</p>
+		 
+		<h3>[property:Float x]</h3>
+
+		<h3>[property:Float y]</h3>
+
+		<h3>[property:Float z]</h3>
+		
+		<h3>[property:Float w]</h3>
+		
+		<h3>[property:Float width]</h3>
+		<p>الاسم المستعار لـ [page:.z z].</p>
+		
+		<h3>[property:Float height]</h3>
+		<p>الاسم المستعار لـ [page:.w w].</p>
+		
+		<h2>الطرق (Methods)</h2>
+		
+		<h3>[method:this add]( [param:Vector4 v] )</h3>
+		<p>يضيف [page:Vector4 v] إلى هذا المتجه.</p>
+		
+		<h3>[method:this addScalar]( [param:Float s] )</h3>
+		<p>
+		يضيف القيمة القياسية s إلى قيم [page:.x x] و [page:.y y] و
+		[page:.z z] و [page:.w w] لهذا المتجه.
+		</p>
+		
+		<h3>[method:this addScaledVector]( [param:Vector4 v], [param:Float s] )</h3>
+		<p>
+		يضيف مضاعفة [page:Vector4 v] و [page:Float s] إلى هذا المتجه.
+		</p>
+		
+		<h3>[method:this addVectors]( [param:Vector4 a], [param:Vector4 b] )</h3>
+		<p> يضبط هذا المتجه على [page:Vector4 a] + [page:Vector4 b]. </p>
+		
+		<h3>[method:this applyMatrix4]( [param:Matrix4 m] )</h3>
+		<p> يضرب هذا المتجه في 4 × 4 [page:Matrix4 m]. </p>
+		
+		<h3>[method:this ceil]()</h3>
+		<p>
+		يتم تقريب مكونات [page:.x x] و [page:.y y] و [page:.z z] و
+		[page:.w w] من هذا المتجه إلى أعلى إلى أقرب قيمة صحيحة.
+		</p>
+		
+		<h3>[method:this clamp]( [param:Vector4 min], [param:Vector4 max] )</h3>
+		<p>
+		[page:Vector4 min]- الحد الأدنى للقيمة [page:.x x] و [page:.y y] و
+		[page:.z z] و[page:.w w]. <br />
+		[page:Vector4 max]- الحد الأقصى للقيمة [page:.x x] و [page:.y y] و
+		[page:.z z] و[page:.w w] في النطاق المطلوب <br /> <br />
+		
+		إذا كانت قيم x أو y أو z أو w لهذا المتجه أكبر من قيمة x أو y أو z أو w للمتجه الأقصى ، فإنها
+		تستبدل بالقيمة المقابلة. <br /> <br />
+		إذا كانت قيم x أو y أو z أو w لهذا المتجه أقل من قيمة x أو y أو z
+		أو w للمتجه الأدنى ، يتم استبداله بالقيمة المقابلة.
+		</p>
+
+		<h3>[method:this clampLength]( [param:Float min], [param:Float max] )</h3>
+		<p>
+		[page:Float min]- الحد الأدنى للقيمة التي سيتم تثبيتها على الطول <br />
+		[page:Float max]- الحد الأقصى للقيمة التي سيتم تثبيتها على الطول <br /> <br />
+		
+		إذا كان طول هذا المتجه أكبر من القيمة القصوى ، يتم استبداله بـ
+		القيمة القصوى. <br /> <br />
+		إذا كان طول هذا المتجه أقل من الحد الأدنى للقيمة ، يتم استبداله بـ
+		الحد الأدنى للقيمة.
+		</p>
+		
+		<h3>[method:this clampScalar]( [param:Float min], [param:Float max] )</h3>
+		<p>
+		[page:Float min]- الحد الأدنى للقيمة التي سيتم تثبيت المكونات عليها
+		<br />
+		[page:Float max]- الحد الأقصى للقيمة التي سيتم تثبيت المكونات عليها <br /> <br />
+		
+		إذا كانت قيم x أو y أو z أو w لهذا المتجه أكبر من الحد الأقصى للقيمة ، فإنها
+		تستبدل بالحد الأقصى للقيمة. <br /> <br />
+		إذا كانت قيم x أو y أو z أو w لهذا المتجه أقل من الحد الأدنى للقيمة ، فإنها
+		تستبدل بالحد الأدنى للقيمة.
+		</p>
+		
+		<h3>[method:Vector4 clone]()</h3>
+		<p>
+		يرجع Vector4 جديدًا بنفس قيم [page:.x x] و [page:.y y] و [page:.z z]
+		و [page:.w w] كهذا.
+		</p>
+		
+		<h3>[method:this copy]( [param:Vector4 v] )</h3>
+		<p>
+		ينسخ قيم خصائص [page:.x x] و [page:.y y] و [page:.z z] و [page:.w w] من Vector4 المار إلى هذا Vector4.
+		</p>
+		
+		<h3>[method:this divideScalar]( [param:Float s] )</h3>
+		<p> يقسم هذا المتجه على العدد القياسي [page:Float s]. </p>
+		
+		<h3>[method:Float dot]( [param:Vector4 v] )</h3>
+		<p>
+		يحسب [link:https://en.wikipedia.org/wiki/Dot_product حاصل ضرب نقطة]
+		هذا المتجه و [page:Vector4 v].
+		</p>
+		
+		<h3>[method:Boolean equals]( [param:Vector4 v] )</h3>
+		<p>
+		يرجع `true` إذا كانت مكونات هذا المتجه و [page:Vector4 v]
+		صارمًا مساوية ؛ `false` في حالات أخرى.
+		</p>
+		
+		<h3>[method:this floor]()</h3>
+		<p>
+		يتم تقريب مكونات هذا المتجه إلى أسفل إلى أقرب قيمة صحيحة
+		قيمة.
+		</p>
+		
+		<h3>
+		[method:this fromArray]( [param:Array array], [param:Integer offset])
+		</h3>
+		<p>
+		[page:Array array]- المصفوفة المصدر. <br />
+		[page:Integer offset]- (اختياري) إزاحة في المصفوفة. الافتراضي هو 0. <br /> <br />
+		
+		يضبط قيمة [page:.x x] لهذا المتجه لتكون `array [offset + 0]` ، قيمة [page:.y y]
+		لتكون `array [offset + 1]` قيمة [page:.z z] لتكون `array [offset + 2]`
+		وقيمة [page:.w w] لتكون `array [offset + 3]`.
+		</p>
+		
+		<h3>
+		[method:this fromBufferAttribute]( [param:BufferAttribute attribute], [param:Integer index])
+		</h3>
+		<p>
+		[page:BufferAttribute attribute]- السمة المصدر. <br />
+		[page:Integer index]- فهرس في السمة. <br /> <br />
+		
+		يضبط قيم [page:.x x] و [page:.y y] و [page:.z z] و [page:.w w]
+		لهذا المتجه من [page:BufferAttribute attribute].
+		</p>
+		
+		<h3>[method:Float getComponent]( [param:Integer index] )</h3>
+		<p>
+		[page:Integer index]- 0، 1، 2 أو 3. <br /> <br />
+		
+		إذا كان index يساوي 0 يعود بقيمة [page:.x x]. <br />
+		إذا كان index يساوي 1 يعود بقيمة [page:.y y]. <br />
+		إذا كان index يساوي 2 يعود بقيمة [page:.z z].<br />
+		إذا كان index يساوي 3 يعود بقيمة [page:.w w].
+		</p>
+		
+		<h3>[method:Float length]()</h3>
+		<p>
+		يحسب [link:https://en.wikipedia.org/wiki/Euclidean_distance الطول الإقليدي]
+		(طول المستقيم) من `(0، 0، 0، 0)` إلى `(x، y، z، w)`.
+		</p>
+		
+		<h3>[method:Float manhattanLength]()</h3>
+		<p>
+		يحسب طول مانهاتن لهذا المتجه.
+		</p>
+		
+		<h3>[method:Float lengthSq]()</h3>
+		<p>
+		يحسب مربع
+		[link:https://en.wikipedia.org/wiki/Euclidean_distance الطول الإقليدي]
+		(طول المستقيم) من `(0، 0، 0، 0)` إلى `(x، y، z، w)`. إذا كنت
+		تقارن أطوال المتجهات ، فيجب عليك مقارنة الطول المربع
+		بدلاً من ذلك لأنه أكثر كفاءة قليلاً في الحساب.
+		</p>
+		
+		<h3>[method:this lerp]( [param:Vector4 v], [param:Float alpha] )</h3>
+		<p>
+		[page:Vector4 v]- [page:Vector4] للتداخل نحوه. <br />
+		[page:Float alpha]- عامل التداخل ، عادةً في الفاصل المغلق
+		الفاصل "[0، 1]". <br /> <br />
+		
+		يتداخل بشكل خطي بين هذا المتجه و [page:Vector4 v] ، حيث
+		alpha هو نسبة المسافة على طول الخط - سيكون `alpha = 0` هذا
+		المتجه ، و `alpha = 1` سيكون [page:Vector4 v].
+		</p>
+		
+		<h3>
+		[method:this lerpVectors]( [param:Vector4 v1], [param:Vector4 v2], [param:Float alpha])
+		</h3>
+		<p>
+		[page:Vector4 v1]- [page:Vector4] الابتدائية. <br />
+		[page:Vector4 v2]- [page:Vector4] للتداخل نحوه. <br />
+		[page:Float alpha]- عامل التداخل ، عادةً في الفاصل المغلق
+		الفاصل `[0، 1]`. <br /> <br />
+		
+		يضبط هذا المتجه ليكون المتجه المتداخل خطيًا بين
+		[page:Vector4 v1] و [page:Vector4 v2] حيث alpha هو نسبة
+		المسافة على طول الخط الذي يربط بين المتجهين - سيكون alpha = 0
+		[page:Vector4 v1] ، وسيكون alpha = 1 [page:Vector4 v2].
+		</p>
+		
+		<h3>[method:this negate]()</h3>
+		<p>يعكس هذا المتجه - أي يضبط x = -x و y = -y و z = -z و w = -w.</p>
+		
+		<h3>[method:this normalize]()</h3>
+		<p>
+		يحول هذا المتجه إلى [link:https://en.wikipedia.org/wiki/Unit_vector متجه وحدة]
+		- أي يضعه يساوي متجهًا بنفس الاتجاه
+		كهذا ، لكن [page:.length الطول] 1.
+		</p>
+		
+		<h3>[method:this max]( [param:Vector4 v] )</h3>
+		<p>
+		إذا كانت قيمة x أو y أو z أو w لهذا المتجه أقل من قيمة x أو y أو z أو w لـ [page:Vector4 v]
+		، استبدل تلك القيمة بالقيمة القصوى المقابلة.
+		</p>
+		
+		<h3>[method:this min]( [param:Vector4 v] )</h3>
+		<p>
+		إذا كانت قيمة x أو y أو z أو w لهذا المتجه أكبر من قيمة x أو y أو z أو w لـ [page:Vector4 v]
+		، استبدل تلك القيمة بالقيمة الدنيا المقابلة.
+		</p>
+		
+		<h3>[method:this multiply]( [param:Vector4 v] )</h3>
+		<p> يضرب هذا المتجه في [page:Vector4 v]. </p>
+		
+		<h3>[method:this multiplyScalar]( [param:Float s] )</h3>
+		<p>يضرب هذا المتجه بالعدد القياسي [page:Float s].</p>
+		
+		<h3>[method:this round]()</h3>
+		<p>
+		يتم تقريب مكونات هذا المتجه إلى أقرب قيمة صحيحة.
+		</p>
+		
+		<h3>[method:this roundToZero]()</h3>
+		<p>
+		يتم تقريب مكونات هذا المتجه نحو الصفر (لأعلى إذا كانت سالبة ،
+		لأسفل إذا كانت موجبة) إلى قيمة صحيحة.
+		</p>
+		
+		<h3>
+		[method:this set]( [param:Float x], [param:Float y], [param:Float z], [param:Float w] )
+		</h3>
+		<p>
+		يضبط مكونات [page:.x x] و [page:.y y] و [page:.z z] و [page:.w w]
+		من هذا المتجه.
+		</p>
+		
+		<h3>[method:this setAxisAngleFromQuaternion]( [param:Quaternion q] )</h3>
+		<p>
+		[page:Quaternion q] - a normalized [page:Quaternion]<br /><br />
+		
+		يضبط مكونات [page:.x x] و [page:.y y] و [page:.z z] من هذا
+		المتجه على محور الرباعية و[page:.w w] على الزاوية.
+		</p>
+		
+		<h3>[method:this setAxisAngleFromRotationMatrix]( [param:Matrix4 m] )</h3>
+		<p>
+		[page:Matrix4 m] - a [page:Matrix4] of which the upper left 3x3 matrix is
+		a pure rotation matrix.<br /><br />
+		
+		يضبط [page:.x x] و [page:.y y] و [page:.z z] على محور الدوران
+		و[page:.w w] على الزاوية.
+		</p>
+		
+		<h3>
+		[method:this setComponent]( [param:Integer index], [param:Float value])
+		</h3>
+		<p>
+		[page:Integer index]- 0، 1، 2 أو 3. <br /> <br />
+		[page:Float value]- [page:Float]<br /> <br />
+		
+		إذا كان index يساوي 0 ، فقم بتعيين [page:.x x] إلى [page:Float value].<br />
+		إذا كان index يساوي 1 ، فقم بتعيين [page:.y y] إلى [page:Float value].<br />
+		إذا كان index يساوي 2 ، فقم بتعيين [page:.z z] إلى [page:Float value].<br />
+		إذا كان index يساوي 3 ، فقم بتعيين [page:.w w] إلى [page:Float value].
+		</p>
+
+		<h3>[method:this setLength]( [param:Float l] )</h3>
+		<p>
+		يضبط هذا المتجه على متجه بنفس الاتجاه كهذا ، لكن
+		[page:.length الطول] [page:Float l].
+		</p>
+		
+		<h3>[method:this setScalar]( [param:Float scalar] )</h3>
+		<p>
+		يضبط قيم [page:.x x] و [page:.y y] و [page:.z z] و [page:.w w] من
+		هذا المتجه متساوية مع [page:Float scalar].
+		</p>
+		
+		<h3>[method:this setX]( [param:Float x] )</h3>
+		<p>يستبدل قيمة [page:.x x] لهذا المتجه بـ [page:Float x].</p>
+		
+		<h3>[method:this setY]( [param:Float y] )</h3>
+		<p>يستبدل قيمة [page:.y y] لهذا المتجه بـ [page:Float y].</p>
+		
+		<h3>[method:this setZ]( [param:Float z] )</h3>
+		<p>يستبدل قيمة [page:.z z] لهذا المتجه بـ [page:Float z].</p>
+		
+		<h3>[method:this setW]( [param:Float w] )</h3>
+		<p>يستبدل قيمة [page:.w w] لهذا المتجه بـ [page:Float w].</p>
+		
+		<h3>[method:this sub]( [param:Vector4 v] )</h3>
+		<p>يطرح [page:Vector4 v] من هذا المتجه.</p>
+		
+		<h3>[method:this subScalar]( [param:Float s] )</h3>
+		<p>
+		يطرح [page:Float s] من مكونات هذا المتجه [page:.x x] و [page:.y y]
+		و[page:.z z] و[page:.w w].
+		</p>
+		
+		<h3>[method:this subVectors]( [param:Vector4 a], [param:Vector4 b] )</h3>
+		<p>يضبط هذا المتجه على [page:Vector4 a] - [page:Vector4 b].</p>
+		
+		<h3>
+		[method:Array toArray]( [param:Array array], [param:Integer offset])
+		</h3>
+		<p>
+		[page:Array array]- (اختياري) مصفوفة لتخزين هذا المتجه فيها. إذا لم يتم توفير هذا ، سيتم إنشاء مصفوفة جديدة. <br />
+		[page:Integer offset]- (اختياري) إزاحة اختيارية في المصفوفة. <br /> <br />
+		
+		يرجع مصفوفة [x، y، z، w] ، أو ينسخ x و y و z و w في المصفوفة المقدمة
+		[page:Array array].
+		</p>
+		
+		<h3>[method:this random]()</h3>
+		<p>
+		يضبط كل مكون من مكونات هذا المتجه على قيمة شبه عشوائية بين 0 و
+		1 ، باستثناء 1.
+		</p>
+
+		<h2>المصدر (Source)</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 24 - 0
docs/list.json

@@ -663,6 +663,30 @@
 				"ShaderMaterial": "api/ar/materials/ShaderMaterial",
 				"ShadowMaterial": "api/ar/materials/ShadowMaterial",
 				"SpriteMaterial": "api/ar/materials/SpriteMaterial"
+			},
+
+			"Math": {
+				"Box2": "api/ar/math/Box2",
+				"Box3": "api/ar/math/Box3",
+				"Color": "api/ar/math/Color",
+				"Cylindrical": "api/ar/math/Cylindrical",
+				"Euler": "api/ar/math/Euler",
+				"Frustum": "api/ar/math/Frustum",
+				"Interpolant": "api/ar/math/Interpolant",
+				"Line3": "api/ar/math/Line3",
+				"MathUtils": "api/ar/math/MathUtils",
+				"Matrix3": "api/ar/math/Matrix3",
+				"Matrix4": "api/ar/math/Matrix4",
+				"Plane": "api/ar/math/Plane",
+				"Quaternion": "api/ar/math/Quaternion",
+				"Ray": "api/ar/math/Ray",
+				"Sphere": "api/ar/math/Sphere",
+				"Spherical": "api/ar/math/Spherical",
+				"SphericalHarmonics3": "api/ar/math/SphericalHarmonics3",
+				"Triangle": "api/ar/math/Triangle",
+				"Vector2": "api/ar/math/Vector2",
+				"Vector3": "api/ar/math/Vector3",
+				"Vector4": "api/ar/math/Vector4"
 			}
 
 		}