W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
一個凸包類。由 Dirk Gregorius 實施 Quickhull 算法。 2014 年 3 月,游戲開發(fā)者大會:Implementing QuickHull.
創(chuàng)建一個新的 ConvexHull 實例。
此頂點列表包含分配給面的所有頂點。默認是一個空的頂點列表。
凸包的生成面。默認為空數(shù)組。
該數(shù)組保存單次迭代中生成的面孔。默認為空數(shù)組。
用于內(nèi)部比較操作的 epsilon 值。該值的計算取決于幾何體的大小。默認為 -1。
此頂點列表包含所有未分配給面的頂點。默認是一個空的頂點列表。
給定幾何數(shù)據(jù)(頂點數(shù)組)的內(nèi)部表示。
eyeVertex - 添加到船體的頂點。
horizonEdge - 地平線的單一邊緣。
按照 CCW 順序創(chuàng)建一個頂點為“eyeVertex.point”、“horizo??nEdge.tail”和“horizo??nEdge.head”的面。所有半邊都是按 CCW 順序創(chuàng)建的,因此面始終指向船體外部
eyeVertex - 添加到船體的頂點。
horizon - 形成地平線的一組半邊。
向船體添加“horizo??n.length”面,每個面都將與地平線相對的面和左側(cè)/右側(cè)的面鏈接。
vertex - 要添加的頂點。
face - 目標面。
將頂點添加到“已分配”頂點列表并將其分配給給定的面。
eyeVertex - 添加到船體的頂點。
使用以下算法將頂點添加到船體
計算“地平線”,它是一連串的半邊。對于屬于該組的邊,它必須是連接可以看到“eyeVertex”的面和看不到“eyeVertex”的面的邊。
所有可以看到“eyeVertex”的面都將其可見頂點從分配的頂點列表中刪除。
使用“地平線”和“eyeVertex”的每條邊創(chuàng)建一組新面孔。每個面都與相對的地平線面和左/右面相連。
如果可能,將從所有可見面中移除的頂點分配給新面。
在計算凸包后清理內(nèi)部屬性。
開始執(zhí)行快速外殼算法。
計算將用于計算初始外殼的極值(最小/最大向量)。
eyePoint - 點的 3D 坐標。
crossEdge - 用于跳轉(zhuǎn)到當前面的邊。
face - 當前正在測試的人臉。
horizon - 按 CCW 順序構(gòu)成地平線一部分的邊。
計算 CCW 順序的半邊鏈,稱為“地平線”。對于要成為地平線一部分的邊緣,它必須連接可以看到“eyePoint”的面和看不到“eyePoint”的面。
計算初始單純形,將所有候選點分配給其面,以形成船體的一部分。
point - 3D 空間中的一個點。
如果給定點在此凸包內(nèi),則返回 true。
face - 給定的臉。
absorbingFace - 嘗試吸收第一個面的頂點的可選面。
刪除“臉”能夠看到的所有可見頂點。
如果 'absorbingFace' 不存在,那么所有移除的頂點將被添加到 'unassigned' 頂點列表中。
如果 'absorbingFace' 存在,則此方法將分配可以看到 'absorbingFace' 的 'face' 的所有頂點。
如果頂點看不到“absorbingFace”,它會被添加到“未分配”頂點列表中。
ray - 給定的射線。
target - 表示交點的目標向量。
使用此凸包執(zhí)行射線相交測試。如果未找到交集,則返回 null。
ray - 給定的射線。
如果給定射線與此凸包相交,則返回 true。
使這個凸包為空。
查找下一個頂點以使用當前外殼創(chuàng)建面。
讓初始面成為“已分配”頂點列表中存在的第一個面。
如果面不存在則返回,因為沒有剩余的頂點。
否則,對于面看到的每個頂點,找到離它最遠的那個。
從內(nèi)部面孔列表中刪除不活動(例如已刪除)的面孔。
face - 給定的臉。
刪除給定面能夠看到的所有可見頂點,這些頂點存儲在“已分配”頂點列表中。
vertex - 要移除的頂點。
face - 目標臉。
從“分配的”頂點列表和給定的面中刪除一個頂點。它還確保從“面”到它在“已分配”中看到的第一個頂點的鏈接在刪除后正確鏈接。
newFaces - 一系列新面孔。
將未分配列表中的盡可能多的頂點重新分配給新面。
object - Object3D 來計算的凸包。
計算 Object3D(包括其子項)的凸包,考慮對象及其子項的世界變換。
points - 生成的凸包將包含的 Vector3 數(shù)組。
計算給定點數(shù)組的凸包。
examples/jsm/math/ConvexHull.js
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: