Plane.html 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173
  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. 在三维空间中无限延伸的二维平面,平面方程用单位长度的法向量和常数表示为海塞法向量[link:http://mathworld.wolfram.com/HessianNormalForm.html Hessian normal form]形式。
  13. </p>
  14. <h2>构造器(Constructor)</h2>
  15. <h3>[name]( [param:Vector3 normal], [param:Float constant] )</h3>
  16. <p>
  17. [page:Vector3 normal] - (可选参数) 定义单位长度的平面法向量[page:Vector3]。默认值为 *(1, 0, 0)*。<br />
  18. [page:Float constant] - (可选参数) 从原点到平面的有符号距离。 默认值为 *0*.
  19. </p>
  20. <h2>属性(Properties)</h2>
  21. <h3>[property:Boolean isPlane]</h3>
  22. <p>
  23. Read-only flag to check if a given object is of type [name].
  24. </p>
  25. <h3>[property:Vector3 normal]</h3>
  26. <h3>[property:Float constant]</h3>
  27. <h2>方法(Methods)</h2>
  28. <h3>[method:this applyMatrix4]( [param:Matrix4 matrix], [param:Matrix3 optionalNormalMatrix] )</h3>
  29. <p>
  30. [page:Matrix4 matrix] - 要应用的四位矩阵([Page:Matrix4])。<br />
  31. [page:Matrix3 optionalNormalMatrix] - (可选参数) 预先计算好的上述Matrix4参数的法线矩阵 [Page:Matrix3]。<br /><br />
  32. 在平面上应用矩阵。矩阵必须是仿射齐次变换。<br />
  33. 如果提供一个optionalNormalMatrix,可以这样创建:
  34. <code>
  35. const optionalNormalMatrix = new THREE.Matrix3().getNormalMatrix( matrix );
  36. </code>
  37. </p>
  38. <h3>[method:Plane clone]()</h3>
  39. <p>返回一个与当前平面有相同法线 [page:.normal normal],常量 [page:.constant constant] 距离的平面。</p>
  40. <h3>[method:Vector3 coplanarPoint]( [param:Vector3 target] )</h3>
  41. <p>
  42. [page:Vector3 target] — 结果会拷贝到该向量中。<br /><br />
  43. 返回一个共面点,通过原点的法向量在平面上投影算得。
  44. </p>
  45. <h3>[method:this copy]( [param:Plane plane] )</h3>
  46. <p>
  47. 拷贝给定平面,将其中的法线 [page:.normal normal],距离常量 [page:.constant constant]属性拷贝给该对象。
  48. </p>
  49. <h3>[method:Float distanceToPoint]( [param:Vector3 point] )</h3>
  50. <p>返回点[page:Vector3 point]到平面的有符号距离。</p>
  51. <h3>[method:Float distanceToSphere]( [param:Sphere sphere] )</h3>
  52. <p>返回球面 [page:Sphere sphere] 的边缘到平面的最短距离。</p>
  53. <h3>[method:Boolean equals]( [param:Plane plane] )</h3>
  54. <p>
  55. 检查两个平面是否相等。(法线 [page:.normal normal] 以及常量 [page:.constant constant] 都相同)。
  56. </p>
  57. <h3>[method:Vector3 intersectLine]( [param:Line3 line], [param:Vector3 target] )</h3>
  58. <p>
  59. [page:Line3 line] - 检测是否相交的三维几何线段 [page:Line3]。<br />
  60. [page:Vector3 target] — 结果将会写入该向量中。<br /><br />
  61. 返回给定线段和平面的交点。如果不相交则返回null。如果线与平面共面,则返回该线段的起始点。
  62. </p>
  63. <h3>[method:Boolean intersectsBox]( [param:Box3 box] )</h3>
  64. <p>
  65. [page:Box3 box] - 检查是否相交的包围盒 [page:Box3]。<br /><br />
  66. 确定该平面是否与给定3d包围盒[page:Box3]相交。
  67. </p>
  68. <h3>[method:Boolean intersectsLine]( [param:Line3 line] )</h3>
  69. <p>
  70. [page:Line3 line] - 检查是否相交的三维线段 [page:Line3]。<br /><br />
  71. 测试线段是否与平面相交。
  72. </p>
  73. <h3>[method:Boolean intersectsSphere]( [param:Sphere sphere] )</h3>
  74. <p>
  75. [page:Sphere sphere] - 检查是否相交的球体 [page:Sphere]。<br /><br />
  76. 确定该平面是否与给定球体 [page:Sphere] 相交。
  77. </p>
  78. <h3>[method:this negate]()</h3>
  79. <p>
  80. 将法向量与常量求反(乘以-1)。
  81. </p>
  82. <h3>[method:this normalize]()</h3>
  83. <p>
  84. 归一化法向量 [page:.normal normal] ,并相应的调整常量 [page:.constant constant]数值。
  85. </p>
  86. <h3>[method:Vector3 projectPoint]( [param:Vector3 point], [param:Vector3 target] )</h3>
  87. <p>
  88. [page:Vector3 point] - 需要投射到该平面的点。<br />
  89. [page:Vector3 target] — 在该平面上离投射点最近的点。<br /><br />
  90. 将一个点[page:Vector3 point]投射到该平面上。
  91. </p>
  92. <h3>[method:this set]( [param:Vector3 normal], [param:Float constant] )</h3>
  93. <p>
  94. [page:Vector3 normal] - 单位长度的向量表示平面的法向量。<br />
  95. [page:Float constant] - 原点到平面有符号距离。<br /><br />
  96. 设置平面 [page:.normal normal] 的法线和常量 [page:.constant constant] 属性值。
  97. </p>
  98. <h3>[method:this setComponents]( [param:Float x], [param:Float y], [param:Float z], [param:Float w] )</h3>
  99. <p>
  100. [page:Float x] - 单位长度法向量的x值。<br />
  101. [page:Float y] - 单位长度法向量的y值。<br />
  102. [page:Float z] - 单位长度法向量的z值。<br />
  103. [page:Float w] - 原点沿法向量到平面常量 [page:.constant constant] 距离。<br /><br />
  104. 设置定义平面的各个变量。
  105. </p>
  106. <h3>[method:this setFromCoplanarPoints]( [param:Vector3 a], [param:Vector3 b], [param:Vector3 c] )</h3>
  107. <p>
  108. [page:Vector3 a] - 用于确定平面的第一个点。<br />
  109. [page:Vector3 b] - 用于确定平面的第二个点。<br />
  110. [page:Vector3 c] - 用于确定平面的第三个点。<br /><br />
  111. 根据给定的三个点确定平面。如果三个点共线将会抛出错误。通过右手螺旋规则确定(向量叉乘)法向量 [page:.normal normal]。
  112. </p>
  113. <h3>[method:this setFromNormalAndCoplanarPoint]( [param:Vector3 normal], [param:Vector3 point] )</h3>
  114. <p>
  115. [page:Vector3 normal] - 平面单位法向量<br />
  116. [page:Vector3 point] - 平面上的点<br /><br />
  117. 通过参数提供的法线 normal 和 平面上的一个点 point 来设置该平面。
  118. </p>
  119. <h3>[method:this translate]( [param:Vector3 offset] )</h3>
  120. <p>
  121. [page:Vector3 offset] - 平移量<br /><br />
  122. 将平面平移给定向量大小,注意:这只会影响平面的常量不会影响平面的法向量。
  123. </p>
  124. <h2>Source</h2>
  125. <p>
  126. [link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
  127. </p>
  128. </body>
  129. </html>