Box2.html 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194
  1. <!DOCTYPE html>
  2. <html lang="zh">
  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>
  10. <h1>[name]</h1>
  11. <p class="desc">
  12. 表示二维空间中的一个轴对齐包围盒(axis-aligned bounding box,AABB)。
  13. </p>
  14. <h2>构造函数(Constructor)</h2>
  15. <h3>[name]( [param:Vector2 min], [param:Vector2 max] )</h3>
  16. <p>
  17. [page:Vector2 min] - (可选) [page:Vector2] 表示该盒子的下边界(x, y)。默认值为( + Infinity, + Infinity )。<br>
  18. [page:Vector2 max] - (可选) [page:Vector2] 表示该盒子的上边界(x, y)。默认值为( - Infinity, - Infinity )。<br /><br />
  19. 创建一个介于最小和最大值之间的[name]。
  20. </p>
  21. <h2>属性(Properties)</h2>
  22. <h3>[property:Vector2 min]</h3>
  23. <p>
  24. [page:Vector2] 表示该盒子的下边界(x, y)。<br />
  25. 默认值为( + Infinity, + Infinity )。
  26. </p>
  27. <h3>[property:Vector2 max]</h3>
  28. <p>
  29. [page:Vector2] 表示该盒子的上边界(x, y)。<br />
  30. 默认值为( - Infinity, - Infinity )。
  31. </p>
  32. <h2>方法(Methods)</h2>
  33. <h3>[method:Vector2 clampPoint]( [param:Vector2 point], [param:Vector2 target] )</h3>
  34. <p>
  35. [page:Vector2 point] - clamp 的位置 ([page:Vector2]) <br>
  36. [page:Vector2 target] — 结果会被复制到该二维向量中。<br /><br />
  37. 在该盒子范围内夹紧([link:https://en.wikipedia.org/wiki/Clamping_(graphics) Clamps])[page:Vector2 point]。<br />
  38. </p>
  39. <h3>[method:Box2 clone]()</h3>
  40. <p>返回一个新的[page:Box2],其[page:.min min]和[page:.max max]与此盒子相同。</p>
  41. <h3>[method:Boolean containsBox]( [param:Box2 box] )</h3>
  42. <p>
  43. [page:Box2 box] - 要检查是否被包含的盒子。<br /><br />
  44. 如果盒子包含整个被检查盒子,则返回true。如果两者重叠,<br>
  45. 也会返回true。
  46. </p>
  47. <h3>[method:Boolean containsPoint]( [param:Vector2 point] )</h3>
  48. <p>
  49. [page:Vector2 point] - 要检查是否被包含的点[page:Vector2]。<br /><br />
  50. 如果指定的点([page:Vector2 point])位于盒子的边界内或边界上,则返回true。
  51. </p>
  52. <h3>[method:this copy]( [param:Box2 box] )</h3>
  53. <p>
  54. 将[page:Box2 box]的[page:.min min] 和 [page:.max max]复制到此盒子中。
  55. </p>
  56. <h3>[method:Float distanceToPoint]( [param:Vector2 point] )</h3>
  57. <p>
  58. [page:Vector2 point] - 要测量距离的点([page:Vector2])。<br /><br />
  59. 返回这个盒子的任何边缘到指定点的距离。如果这个点([page:Vector2 point])位于这个盒子里,距离将是0。
  60. </p>
  61. <h3>[method:Boolean equals]( [param:Box2 box] )</h3>
  62. <p>
  63. [page:Box2 box] - 要对比的盒子<br /><br />
  64. 如果这个盒子和被对比盒子具有相同的上下边界,则返回true。
  65. </p>
  66. <h3>[method:this expandByPoint]( [param:Vector2 point] )</h3>
  67. <p>
  68. [page:Vector2 point] - 应该被盒子包含的点。<br /><br />
  69. 扩展盒子的边界来包含该点。
  70. </p>
  71. <h3>[method:this expandByScalar]( [param:Float scalar] )</h3>
  72. <p>
  73. [page:Float scalar] - 盒子扩展的距离。<br /><br />
  74. 在每个维度上扩展参数scalar所指定的距离,如果为负数,则盒子空间将收缩。
  75. </p>
  76. <h3>[method:this expandByVector]( [param:Vector2 vector] )</h3>
  77. <p>
  78. [page:Vector2 vector] - 按照该向量扩展。<br /><br />
  79. 在每个维度中按vector的数值进行扩展。宽度在两个方向上的扩展将由vector的x分量确定,
  80. 高度在两个方向上的扩展则由y分量确定。
  81. </p>
  82. <h3>[method:Vector2 getCenter]( [param:Vector2 target] )</h3>
  83. <p>
  84. [page:Vector2 target] — 结果将被复制到此二维向量中。<br /><br />
  85. 以二维向量形式返回盒子的中心点。
  86. </p>
  87. <h3>[method:Vector2 getParameter]( [param:Vector2 point], [param:Vector2 target] ) </h3>
  88. <p>
  89. [page:Vector2 point] - 二维向量([page:Vector2]).<br/>
  90. [page:Vector2 target] — 结果将被复制到此二维向量中。<br /><br />
  91. 返回一个点作为此盒子的宽度和高度的比例。
  92. </p>
  93. <h3>[method:Vector2 getSize]( [param:Vector2 target] )</h3>
  94. <p>
  95. [page:Vector2 target] — 结果将被复制到此二维向量中。<br /><br />
  96. 返回此盒子的宽度和高度。
  97. </p>
  98. <h3>[method:this intersect]( [param:Box2 box] )</h3>
  99. <p>
  100. [page:Box2 box] - 要相交的盒子。<br /><br />
  101. 返回两者的相交后的盒子,并将相交后的盒子的上限设置为两者的上限中的较小者,将下限设置为两者的下限中的较大者。
  102. </p>
  103. <h3>[method:Boolean intersectsBox]( [param:Box2 box] )</h3>
  104. <p>
  105. [page:Box2 box] - 用来检查相交的盒子。<br /><br />
  106. 确定该盒子是否和其相交。
  107. </p>
  108. <h3>[method:Boolean isEmpty]()</h3>
  109. <p>
  110. 如果这个盒子包含0个顶点,则返回true。<br>
  111. 请注意,一个下上边界相等的的盒子仍然包括一个点,一个两个边界共享的点。
  112. </p>
  113. <h3>[method:this makeEmpty]()</h3>
  114. <p>使此盒子为空。</p>
  115. <h3>[method:this set]( [param:Vector2 min], [param:Vector2 max] )</h3>
  116. <p>
  117. [page:Vector2 min] - (必须) 表示该盒子的下边界(x, y)。 <br>
  118. [page:Vector2 max] - (必须) 表示该盒子的上边界(x, y)。 <br /><br />
  119. 设置这个盒子的上下(x, y)的界限。<br>
  120. 请注意,此方法仅复制给定对象的值。
  121. </p>
  122. <h3>[method:this setFromCenterAndSize]( [param:Vector2 center], [param:Vector2 size] )</h3>
  123. <p>
  124. [page:Vector2 center] - 盒子所要设置的中心位置。 ([page:Vector2]). <br>
  125. [page:Vector2 size] - 盒子所要设置的x和y尺寸 ([page:Vector2]).<br /><br />
  126. 使盒子的中心点位于[page:Vector2 center],并设置宽高为[page:Vector2 size]中指定的值。
  127. </p>
  128. <h3>[method:this setFromPoints]( [param:Array points] )</h3>
  129. <p>
  130. [page:Array points] - 点的集合,由这些点确定的空间将被盒子包围。<br /><br />
  131. 设置这个盒子的上下边界,来包含所有设置在[page:Array points]参数中的点。
  132. </p>
  133. <h3>[method:this translate]( [param:Vector2 offset] )</h3>
  134. <p>
  135. [page:Vector2 offset] - 偏移方向和距离。<br /><br />
  136. 添加 [page:Vector2 offset] 到这个盒子的上下边界,实际上在2D空间移动这个盒子[page:Vector2 offset]个单位。
  137. </p>
  138. <h3>[method:this union]( [param:Box2 box] )</h3>
  139. <p>
  140. [page:Box2 box] - 将要与该盒子联合的盒子<br /><br />
  141. 在[page:Box2 box]参数的上边界和该盒子的上边界之间取较大者,而对两者的下边界取较小者,这样获得一个新的较大的联合盒子。
  142. </p>
  143. <h2>源码(Source)</h2>
  144. <p>
  145. [link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
  146. </p>
  147. </body>
  148. </html>