Plane.html 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  1. <!DOCTYPE html>
  2. <html lang="it">
  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. Una superficie bidimensionale che si estende all'infinito nello spazio 3D,
  13. rappresentata in [link:http://mathworld.wolfram.com/HessianNormalForm.html forma normale Hessiana]
  14. da un vettore normale di lunghezza unitaria e una costante.
  15. </p>
  16. <h2>Costruttore</h2>
  17. <h3>[name]( [param:Vector3 normal], [param:Float constant] )</h3>
  18. <p>
  19. [page:Vector3 normal] - (opzionale) un [page:Vector3] di lunghezza unitaria che definisce la normale del piano. Il valore predefinito è *(1, 0, 0)*.<br />
  20. [page:Float constant] - (opzionale) la distanza con segno dall'origine al piano. Il valore predefinito è `0`.
  21. </p>
  22. <h2>Proprietà</h2>
  23. <h3>[property:Boolean isPlane]</h3>
  24. <p>
  25. Flag di sola lettura per verificare se l'oggetto dato è di tipo [name].
  26. </p>
  27. <h3>[property:Vector3 normal]</h3>
  28. <h3>[property:Float constant]</h3>
  29. <h2>Metodi</h2>
  30. <h3>[method:this applyMatrix4]( [param:Matrix4 matrix], [param:Matrix3 optionalNormalMatrix] )</h3>
  31. <p>
  32. [page:Matrix4 matrix] - la [Page:Matrix4] da applicare.<br />
  33. [page:Matrix3 optionalNormalMatrix] - (opzionale) [Page:Matrix3] normale pre-calcolata della Matrix4 da applicare.<br /><br />
  34. Applica una Matrix4 al piano. La matrice deve essere una trasformata affine e omogenea.<br />
  35. Se si fornisce una [page:Matrix3 optionalNormalMatrix], può essere creata in questo modo:
  36. <code>
  37. const optionalNormalMatrix = new THREE.Matrix3().getNormalMatrix( matrix );
  38. </code>
  39. </p>
  40. <h3>[method:Plane clone]()</h3>
  41. <p>Restituisce un nuovo piano con la stessa [page:.normal normal] e [page:.constant constant] di questo piano.</p>
  42. <h3>[method:Vector3 coplanarPoint]( [param:Vector3 target] )</h3>
  43. <p>
  44. [page:Vector3 target] — il risultato verrà copiato in questo Vector3.<br /><br />
  45. Restituisce un [page:Vector3] complanare al piano, calcolando la proiezione del vettore normale all'origine sul piano.
  46. </p>
  47. <h3>[method:this copy]( [param:Plane plane] )</h3>
  48. <p>
  49. Copia i valori delle proprietà [page:.normal normal] e [page:.constant constant] del piano passato in questo piano.
  50. </p>
  51. <h3>[method:Float distanceToPoint]( [param:Vector3 point] )</h3>
  52. <p>Restituisce la distanza con segno dal [page:Vector3 point] al piano.</p>
  53. <h3>[method:Float distanceToSphere]( [param:Sphere sphere] )</h3>
  54. <p>Restituisce la distanza con segno dalla [page:Sphere sphere] al piano.</p>
  55. <h3>[method:Boolean equals]( [param:Plane plane] )</h3>
  56. <p>
  57. Controlla se due piani sono uguali (le loro proprietà [page:.normal normal] e
  58. [page:.constant constant] coincidono).
  59. </p>
  60. <h3>[method:Vector3 intersectLine]( [param:Line3 line], [param:Vector3 target] )</h3>
  61. <p>
  62. [page:Line3 line] - [page:Line3] per verificare l'intersezione.<br />
  63. [page:Vector3 target] — il risultato verrà copiato in questo Vector3.<br /><br />
  64. Restituisce il punto di intersezione tra la linea passata e il piano. Restituisce `null`
  65. se la linea non interseca il piano. Restituisce il punto di partenza della linea se la
  66. linea è complanare al piano.
  67. </p>
  68. <h3>[method:Boolean intersectsBox]( [param:Box3 box] )</h3>
  69. <p>
  70. [page:Box3 box] - il [page:Box3] per verificare l'intersezione.<br /><br />
  71. Determina se questo piano interseca il [page:Box3 box] o no.
  72. </p>
  73. <h3>[method:Boolean intersectsLine]( [param:Line3 line] )</h3>
  74. <p>
  75. [page:Line3 line] - la [page:Line3] per verificare l'intersezione.<br /><br />
  76. Verifica se un segmento di linea si interseca (passa attraverso) il piano o no.
  77. </p>
  78. <h3>[method:Boolean intersectsSphere]( [param:Sphere sphere] )</h3>
  79. <p>
  80. [page:Sphere sphere] - la [page:Sphere] per verificare l'intersezione.<br /><br />
  81. Determina se questo piano interseca la [page:Sphere sphere] o no.
  82. </p>
  83. <h3>[method:this negate]()</h3>
  84. <p>
  85. Nega sia la normale che la costante.
  86. </p>
  87. <h3>[method:this normalize]()</h3>
  88. <p>
  89. Normalizza il vettore [page:.normal normal], e aggiusta di conseguenza il valore della
  90. [page:.constant constant].
  91. </p>
  92. <h3>[method:Vector3 projectPoint]( [param:Vector3 point], [param:Vector3 target] )</h3>
  93. <p>
  94. [page:Vector3 point] - il [page:Vector3] da proiettare sul piano.<br />
  95. [page:Vector3 target] — il risultato verrà copiato in questo Vector3.<br /><br />
  96. Proietta un [page:Vector3 point] sul piano.
  97. </p>
  98. <h3>[method:this set]( [param:Vector3 normal], [param:Float constant] )</h3>
  99. <p>
  100. [page:Vector3 normal] - un [page:Vector3] di lunghezza unitaria che definisce la normale del piano.<br />
  101. [page:Float constant] - la distanza con segno dall'origine al piano.<br /><br />
  102. Imposta le proprietà [page:.normal normal] e [page:.constant constant] del piano copiando i valori dalla normale data.
  103. </p>
  104. <h3>[method:this setComponents]( [param:Float x], [param:Float y], [param:Float z], [param:Float w] )</h3>
  105. <p>
  106. [page:Float x] - x valore del vettore normale di lunghezza unitaria.<br />
  107. [page:Float y] - y valore del vettore normale di lunghezza unitaria.<br />
  108. [page:Float z] - z valore del vettore normale di lunghezza unitaria.<br />
  109. [page:Float w] - il valore della proprieà [page:.constant constant] del piano.<br /><br />
  110. Imposta i singoli componenti che definiscono il piano.
  111. </p>
  112. <h3>[method:this setFromCoplanarPoints]( [param:Vector3 a], [param:Vector3 b], [param:Vector3 c] )</h3>
  113. <p>
  114. [page:Vector3 a] - primo punto sul piano.<br />
  115. [page:Vector3 b] - secondo punto sul piano.<br />
  116. [page:Vector3 c] - terzo punto sul piano.<br /><br />
  117. Definisce il piano in base ai 3 punti forniti. Si presume che l'ordine di avvolgimento sia in senso antiorario,
  118. e determina la direzione della [page:.normal normale].
  119. </p>
  120. <h3>[method:this setFromNormalAndCoplanarPoint]( [param:Vector3 normal], [param:Vector3 point] )</h3>
  121. <p>
  122. [page:Vector3 normal] - un [page:Vector3] di lunghezza unitaria che definisce la normale del piano.<br />
  123. [page:Vector3 point] - [page:Vector3]<br /><br />
  124. Imposta le proprietà del piano definite da una [page:Vector3 normale] e un [page:Vector3 punto] complanare arbitrario.
  125. </p>
  126. <h3>[method:this translate]( [param:Vector3 offset] )</h3>
  127. <p>
  128. [page:Vector3 offset] - la quantità di cui muovere il piano.<br /><br />
  129. Trasla il piano della distanza definita dal vettore [page:Vector3 offset].
  130. Si noti che questo influisce solo la costante del piano e non influenzerà il vettore normale.
  131. </p>
  132. <h2>Source</h2>
  133. <p>
  134. [link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
  135. </p>
  136. </body>
  137. </html>