123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392 |
- <!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>
|