Vector4.html 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392
  1. <!DOCTYPE html>
  2. <html lang="ar">
  3. <head>
  4. <meta charset="utf-8" />
  5. <base href="../../../" />
  6. <script src="page.js"></script>
  7. <link type="text/css" rel="stylesheet" href="page.css" />
  8. </head>
  9. <body class="rtl">
  10. <h1>[name]</h1>
  11. <p class="desc">
  12. تمثل الفئة متجه 4D [link:https://en.wikipedia.org/wiki/Vector_space vector].
  13. متجه 4D هو رباعي من الأرقام المرتبة (مسمى x و y و z و w) ، والذي يمكن استخدامه لتمثيل عدد من الأشياء ، مثل:
  14. </p>
  15. <ul>
  16. <li>نقطة في الفضاء 4D.</li>
  17. <li>
  18. اتجاه وطول في الفضاء 4D. في three.js ، سيكون الطول دائمًا
  19. [link:https://en.wikipedia.org/wiki/Euclidean_distance المسافة الإقليدية]
  20. (المسافة المستقيمة) من `(0، 0، 0، 0)` إلى `(x، y، z، w)`
  21. ويتم قياس الاتجاه أيضًا من `(0، 0، 0، 0)` نحو `(x، y، z، w)`.
  22. </li>
  23. <li>أي رباعي مرتب عشوائي من الأرقام.</li>
  24. </ul>
  25. <p>
  26. هناك أشياء أخرى يمكن استخدام متجه 4D لتمثيلها ، ولكن هذه هي
  27. الاستخدامات الأكثر شيوعًا في *three.js*.
  28. </p>
  29. <p>
  30. التكرار عبر مثيل [name] سيعطي مكوناته `(x، y، z، w)` بالترتيب المقابل.
  31. </p>
  32. <h2>مثال للكود</h2>
  33. <code>
  34. const a = new THREE.Vector4( 0, 1, 0, 0 );
  35. //لا معاملات؛ سيتم تهيئته إلى (0 ، 0 ، 0 ، 1)
  36. const b = new THREE.Vector4( );
  37. const d = a.dot( b );
  38. </code>
  39. <h2>المنشئ (Constructor)</h2>
  40. <h3>
  41. [name]( [param:Float x], [param:Float y], [param:Float z], [param:Float w] )
  42. </h3>
  43. <p>
  44. [page:Float x] - قيمة x لهذا المتجه. الافتراضية هي `0`.<br />
  45. [page:Float y] - قيمة y لهذا المتجه. الافتراضية هي `0`.<br />
  46. [page:Float z] - قيمة z لهذا المتجه. الافتراضية هي `0`.<br />
  47. [page:Float w] - قيمة w لهذا المتجه. الافتراضية هي `1`.<br /><br />
  48. ينشئ جديدًا [name].
  49. </p>
  50. <h2>الخصائص (Properties)</h2>
  51. <h3>[property:Boolean isVector4]</h3>
  52. <p>علامة للقراءة فقط للتحقق مما إذا كان كائنًا معطىً من نوع [name].</p>
  53. <h3>[property:Float x]</h3>
  54. <h3>[property:Float y]</h3>
  55. <h3>[property:Float z]</h3>
  56. <h3>[property:Float w]</h3>
  57. <h3>[property:Float width]</h3>
  58. <p>الاسم المستعار لـ [page:.z z].</p>
  59. <h3>[property:Float height]</h3>
  60. <p>الاسم المستعار لـ [page:.w w].</p>
  61. <h2>الطرق (Methods)</h2>
  62. <h3>[method:this add]( [param:Vector4 v] )</h3>
  63. <p>يضيف [page:Vector4 v] إلى هذا المتجه.</p>
  64. <h3>[method:this addScalar]( [param:Float s] )</h3>
  65. <p>
  66. يضيف القيمة القياسية s إلى قيم [page:.x x] و [page:.y y] و
  67. [page:.z z] و [page:.w w] لهذا المتجه.
  68. </p>
  69. <h3>[method:this addScaledVector]( [param:Vector4 v], [param:Float s] )</h3>
  70. <p>
  71. يضيف مضاعفة [page:Vector4 v] و [page:Float s] إلى هذا المتجه.
  72. </p>
  73. <h3>[method:this addVectors]( [param:Vector4 a], [param:Vector4 b] )</h3>
  74. <p> يضبط هذا المتجه على [page:Vector4 a] + [page:Vector4 b]. </p>
  75. <h3>[method:this applyMatrix4]( [param:Matrix4 m] )</h3>
  76. <p> يضرب هذا المتجه في 4 × 4 [page:Matrix4 m]. </p>
  77. <h3>[method:this ceil]()</h3>
  78. <p>
  79. يتم تقريب مكونات [page:.x x] و [page:.y y] و [page:.z z] و
  80. [page:.w w] من هذا المتجه إلى أعلى إلى أقرب قيمة صحيحة.
  81. </p>
  82. <h3>[method:this clamp]( [param:Vector4 min], [param:Vector4 max] )</h3>
  83. <p>
  84. [page:Vector4 min]- الحد الأدنى للقيمة [page:.x x] و [page:.y y] و
  85. [page:.z z] و[page:.w w]. <br />
  86. [page:Vector4 max]- الحد الأقصى للقيمة [page:.x x] و [page:.y y] و
  87. [page:.z z] و[page:.w w] في النطاق المطلوب <br /> <br />
  88. إذا كانت قيم x أو y أو z أو w لهذا المتجه أكبر من قيمة x أو y أو z أو w للمتجه الأقصى ، فإنها
  89. تستبدل بالقيمة المقابلة. <br /> <br />
  90. إذا كانت قيم x أو y أو z أو w لهذا المتجه أقل من قيمة x أو y أو z
  91. أو w للمتجه الأدنى ، يتم استبداله بالقيمة المقابلة.
  92. </p>
  93. <h3>[method:this clampLength]( [param:Float min], [param:Float max] )</h3>
  94. <p>
  95. [page:Float min]- الحد الأدنى للقيمة التي سيتم تثبيتها على الطول <br />
  96. [page:Float max]- الحد الأقصى للقيمة التي سيتم تثبيتها على الطول <br /> <br />
  97. إذا كان طول هذا المتجه أكبر من القيمة القصوى ، يتم استبداله بـ
  98. القيمة القصوى. <br /> <br />
  99. إذا كان طول هذا المتجه أقل من الحد الأدنى للقيمة ، يتم استبداله بـ
  100. الحد الأدنى للقيمة.
  101. </p>
  102. <h3>[method:this clampScalar]( [param:Float min], [param:Float max] )</h3>
  103. <p>
  104. [page:Float min]- الحد الأدنى للقيمة التي سيتم تثبيت المكونات عليها
  105. <br />
  106. [page:Float max]- الحد الأقصى للقيمة التي سيتم تثبيت المكونات عليها <br /> <br />
  107. إذا كانت قيم x أو y أو z أو w لهذا المتجه أكبر من الحد الأقصى للقيمة ، فإنها
  108. تستبدل بالحد الأقصى للقيمة. <br /> <br />
  109. إذا كانت قيم x أو y أو z أو w لهذا المتجه أقل من الحد الأدنى للقيمة ، فإنها
  110. تستبدل بالحد الأدنى للقيمة.
  111. </p>
  112. <h3>[method:Vector4 clone]()</h3>
  113. <p>
  114. يرجع Vector4 جديدًا بنفس قيم [page:.x x] و [page:.y y] و [page:.z z]
  115. و [page:.w w] كهذا.
  116. </p>
  117. <h3>[method:this copy]( [param:Vector4 v] )</h3>
  118. <p>
  119. ينسخ قيم خصائص [page:.x x] و [page:.y y] و [page:.z z] و [page:.w w] من Vector4 المار إلى هذا Vector4.
  120. </p>
  121. <h3>[method:this divideScalar]( [param:Float s] )</h3>
  122. <p> يقسم هذا المتجه على العدد القياسي [page:Float s]. </p>
  123. <h3>[method:Float dot]( [param:Vector4 v] )</h3>
  124. <p>
  125. يحسب [link:https://en.wikipedia.org/wiki/Dot_product حاصل ضرب نقطة]
  126. هذا المتجه و [page:Vector4 v].
  127. </p>
  128. <h3>[method:Boolean equals]( [param:Vector4 v] )</h3>
  129. <p>
  130. يرجع `true` إذا كانت مكونات هذا المتجه و [page:Vector4 v]
  131. صارمًا مساوية ؛ `false` في حالات أخرى.
  132. </p>
  133. <h3>[method:this floor]()</h3>
  134. <p>
  135. يتم تقريب مكونات هذا المتجه إلى أسفل إلى أقرب قيمة صحيحة
  136. قيمة.
  137. </p>
  138. <h3>
  139. [method:this fromArray]( [param:Array array], [param:Integer offset])
  140. </h3>
  141. <p>
  142. [page:Array array]- المصفوفة المصدر. <br />
  143. [page:Integer offset]- (اختياري) إزاحة في المصفوفة. الافتراضي هو 0. <br /> <br />
  144. يضبط قيمة [page:.x x] لهذا المتجه لتكون `array [offset + 0]` ، قيمة [page:.y y]
  145. لتكون `array [offset + 1]` قيمة [page:.z z] لتكون `array [offset + 2]`
  146. وقيمة [page:.w w] لتكون `array [offset + 3]`.
  147. </p>
  148. <h3>
  149. [method:this fromBufferAttribute]( [param:BufferAttribute attribute], [param:Integer index])
  150. </h3>
  151. <p>
  152. [page:BufferAttribute attribute]- السمة المصدر. <br />
  153. [page:Integer index]- فهرس في السمة. <br /> <br />
  154. يضبط قيم [page:.x x] و [page:.y y] و [page:.z z] و [page:.w w]
  155. لهذا المتجه من [page:BufferAttribute attribute].
  156. </p>
  157. <h3>[method:Float getComponent]( [param:Integer index] )</h3>
  158. <p>
  159. [page:Integer index]- 0، 1، 2 أو 3. <br /> <br />
  160. إذا كان index يساوي 0 يعود بقيمة [page:.x x]. <br />
  161. إذا كان index يساوي 1 يعود بقيمة [page:.y y]. <br />
  162. إذا كان index يساوي 2 يعود بقيمة [page:.z z].<br />
  163. إذا كان index يساوي 3 يعود بقيمة [page:.w w].
  164. </p>
  165. <h3>[method:Float length]()</h3>
  166. <p>
  167. يحسب [link:https://en.wikipedia.org/wiki/Euclidean_distance الطول الإقليدي]
  168. (طول المستقيم) من `(0، 0، 0، 0)` إلى `(x، y، z، w)`.
  169. </p>
  170. <h3>[method:Float manhattanLength]()</h3>
  171. <p>
  172. يحسب طول مانهاتن لهذا المتجه.
  173. </p>
  174. <h3>[method:Float lengthSq]()</h3>
  175. <p>
  176. يحسب مربع
  177. [link:https://en.wikipedia.org/wiki/Euclidean_distance الطول الإقليدي]
  178. (طول المستقيم) من `(0، 0، 0، 0)` إلى `(x، y، z، w)`. إذا كنت
  179. تقارن أطوال المتجهات ، فيجب عليك مقارنة الطول المربع
  180. بدلاً من ذلك لأنه أكثر كفاءة قليلاً في الحساب.
  181. </p>
  182. <h3>[method:this lerp]( [param:Vector4 v], [param:Float alpha] )</h3>
  183. <p>
  184. [page:Vector4 v]- [page:Vector4] للتداخل نحوه. <br />
  185. [page:Float alpha]- عامل التداخل ، عادةً في الفاصل المغلق
  186. الفاصل "[0، 1]". <br /> <br />
  187. يتداخل بشكل خطي بين هذا المتجه و [page:Vector4 v] ، حيث
  188. alpha هو نسبة المسافة على طول الخط - سيكون `alpha = 0` هذا
  189. المتجه ، و `alpha = 1` سيكون [page:Vector4 v].
  190. </p>
  191. <h3>
  192. [method:this lerpVectors]( [param:Vector4 v1], [param:Vector4 v2], [param:Float alpha])
  193. </h3>
  194. <p>
  195. [page:Vector4 v1]- [page:Vector4] الابتدائية. <br />
  196. [page:Vector4 v2]- [page:Vector4] للتداخل نحوه. <br />
  197. [page:Float alpha]- عامل التداخل ، عادةً في الفاصل المغلق
  198. الفاصل `[0، 1]`. <br /> <br />
  199. يضبط هذا المتجه ليكون المتجه المتداخل خطيًا بين
  200. [page:Vector4 v1] و [page:Vector4 v2] حيث alpha هو نسبة
  201. المسافة على طول الخط الذي يربط بين المتجهين - سيكون alpha = 0
  202. [page:Vector4 v1] ، وسيكون alpha = 1 [page:Vector4 v2].
  203. </p>
  204. <h3>[method:this negate]()</h3>
  205. <p>يعكس هذا المتجه - أي يضبط x = -x و y = -y و z = -z و w = -w.</p>
  206. <h3>[method:this normalize]()</h3>
  207. <p>
  208. يحول هذا المتجه إلى [link:https://en.wikipedia.org/wiki/Unit_vector متجه وحدة]
  209. - أي يضعه يساوي متجهًا بنفس الاتجاه
  210. كهذا ، لكن [page:.length الطول] 1.
  211. </p>
  212. <h3>[method:this max]( [param:Vector4 v] )</h3>
  213. <p>
  214. إذا كانت قيمة x أو y أو z أو w لهذا المتجه أقل من قيمة x أو y أو z أو w لـ [page:Vector4 v]
  215. ، استبدل تلك القيمة بالقيمة القصوى المقابلة.
  216. </p>
  217. <h3>[method:this min]( [param:Vector4 v] )</h3>
  218. <p>
  219. إذا كانت قيمة x أو y أو z أو w لهذا المتجه أكبر من قيمة x أو y أو z أو w لـ [page:Vector4 v]
  220. ، استبدل تلك القيمة بالقيمة الدنيا المقابلة.
  221. </p>
  222. <h3>[method:this multiply]( [param:Vector4 v] )</h3>
  223. <p> يضرب هذا المتجه في [page:Vector4 v]. </p>
  224. <h3>[method:this multiplyScalar]( [param:Float s] )</h3>
  225. <p>يضرب هذا المتجه بالعدد القياسي [page:Float s].</p>
  226. <h3>[method:this round]()</h3>
  227. <p>
  228. يتم تقريب مكونات هذا المتجه إلى أقرب قيمة صحيحة.
  229. </p>
  230. <h3>[method:this roundToZero]()</h3>
  231. <p>
  232. يتم تقريب مكونات هذا المتجه نحو الصفر (لأعلى إذا كانت سالبة ،
  233. لأسفل إذا كانت موجبة) إلى قيمة صحيحة.
  234. </p>
  235. <h3>
  236. [method:this set]( [param:Float x], [param:Float y], [param:Float z], [param:Float w] )
  237. </h3>
  238. <p>
  239. يضبط مكونات [page:.x x] و [page:.y y] و [page:.z z] و [page:.w w]
  240. من هذا المتجه.
  241. </p>
  242. <h3>[method:this setAxisAngleFromQuaternion]( [param:Quaternion q] )</h3>
  243. <p>
  244. [page:Quaternion q] - a normalized [page:Quaternion]<br /><br />
  245. يضبط مكونات [page:.x x] و [page:.y y] و [page:.z z] من هذا
  246. المتجه على محور الرباعية و[page:.w w] على الزاوية.
  247. </p>
  248. <h3>[method:this setAxisAngleFromRotationMatrix]( [param:Matrix4 m] )</h3>
  249. <p>
  250. [page:Matrix4 m] - a [page:Matrix4] of which the upper left 3x3 matrix is
  251. a pure rotation matrix.<br /><br />
  252. يضبط [page:.x x] و [page:.y y] و [page:.z z] على محور الدوران
  253. و[page:.w w] على الزاوية.
  254. </p>
  255. <h3>
  256. [method:this setComponent]( [param:Integer index], [param:Float value])
  257. </h3>
  258. <p>
  259. [page:Integer index]- 0، 1، 2 أو 3. <br /> <br />
  260. [page:Float value]- [page:Float]<br /> <br />
  261. إذا كان index يساوي 0 ، فقم بتعيين [page:.x x] إلى [page:Float value].<br />
  262. إذا كان index يساوي 1 ، فقم بتعيين [page:.y y] إلى [page:Float value].<br />
  263. إذا كان index يساوي 2 ، فقم بتعيين [page:.z z] إلى [page:Float value].<br />
  264. إذا كان index يساوي 3 ، فقم بتعيين [page:.w w] إلى [page:Float value].
  265. </p>
  266. <h3>[method:this setLength]( [param:Float l] )</h3>
  267. <p>
  268. يضبط هذا المتجه على متجه بنفس الاتجاه كهذا ، لكن
  269. [page:.length الطول] [page:Float l].
  270. </p>
  271. <h3>[method:this setScalar]( [param:Float scalar] )</h3>
  272. <p>
  273. يضبط قيم [page:.x x] و [page:.y y] و [page:.z z] و [page:.w w] من
  274. هذا المتجه متساوية مع [page:Float scalar].
  275. </p>
  276. <h3>[method:this setX]( [param:Float x] )</h3>
  277. <p>يستبدل قيمة [page:.x x] لهذا المتجه بـ [page:Float x].</p>
  278. <h3>[method:this setY]( [param:Float y] )</h3>
  279. <p>يستبدل قيمة [page:.y y] لهذا المتجه بـ [page:Float y].</p>
  280. <h3>[method:this setZ]( [param:Float z] )</h3>
  281. <p>يستبدل قيمة [page:.z z] لهذا المتجه بـ [page:Float z].</p>
  282. <h3>[method:this setW]( [param:Float w] )</h3>
  283. <p>يستبدل قيمة [page:.w w] لهذا المتجه بـ [page:Float w].</p>
  284. <h3>[method:this sub]( [param:Vector4 v] )</h3>
  285. <p>يطرح [page:Vector4 v] من هذا المتجه.</p>
  286. <h3>[method:this subScalar]( [param:Float s] )</h3>
  287. <p>
  288. يطرح [page:Float s] من مكونات هذا المتجه [page:.x x] و [page:.y y]
  289. و[page:.z z] و[page:.w w].
  290. </p>
  291. <h3>[method:this subVectors]( [param:Vector4 a], [param:Vector4 b] )</h3>
  292. <p>يضبط هذا المتجه على [page:Vector4 a] - [page:Vector4 b].</p>
  293. <h3>
  294. [method:Array toArray]( [param:Array array], [param:Integer offset])
  295. </h3>
  296. <p>
  297. [page:Array array]- (اختياري) مصفوفة لتخزين هذا المتجه فيها. إذا لم يتم توفير هذا ، سيتم إنشاء مصفوفة جديدة. <br />
  298. [page:Integer offset]- (اختياري) إزاحة اختيارية في المصفوفة. <br /> <br />
  299. يرجع مصفوفة [x، y، z، w] ، أو ينسخ x و y و z و w في المصفوفة المقدمة
  300. [page:Array array].
  301. </p>
  302. <h3>[method:this random]()</h3>
  303. <p>
  304. يضبط كل مكون من مكونات هذا المتجه على قيمة شبه عشوائية بين 0 و
  305. 1 ، باستثناء 1.
  306. </p>
  307. <h2>المصدر (Source)</h2>
  308. <p>
  309. [link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
  310. </p>
  311. </body>
  312. </html>