簡體   English   中英

如何刪除線框對角線?

[英]How to remove wireframe diagonals?

我為CAD軟件編寫了一個自定義導出器,用於將幾何數​​據導出到ThreeJS編輯器。 現在,當然,在ThreeJS中,我編寫了一個正確的加載器,可以正確加載所有幾何圖形。

只有一個問題。 在ThreeJS的線框視圖中,每個頂點都有一個三角形。 用什么技術可以去除三角剖分和對角線? 如何顯示沒有對角線的線框?

源3D: 圖片

ThreeJS 3D :(請參見三角形和對角線) 圖片

好像您將所有點/多邊形繪制為一條多段線

  • 這是不正確的,您應該將每個多邊形處理為線循環
  • 如果您的網格是三角形或四邊形,則需要提取周界線

提取周邊線

  1. 如果您的網格不是由多邊形定義的,則需要將所有連接的圖元分組為單個多邊形
  2. 從列表中的單個多邊形獲取所有線
  3. 找到重復的行並將其全部刪除
    • 因此所有使用相同點(以任何順序)的線都是重復的
    • 連接的圖元具有相同的優勢
    • 因此,這對於適當三角剖分的多邊形就足夠了
  4. 某些三角剖分只能通過線連接而不能通過點連接
    • 對於這些,您需要比較所有剩余的行
    • 取所有平行線(相同或相反的角度)
    • 並測試它們是否位於同一行
    • 如果是,並且已連接(重疊)
    • 然后剪切線,以便刪除重疊的部分

不良三角剖分

  • 如果基元重疊而不是合並
  • 然后繪制一個多邊形到清除的緩沖區
  • 然后處理所有行
  • 計算每個的中點
  • 並測試坐標是否已填充到緩沖區中
  • 如果是刪除行
  • 這不是100%的子彈證明
  • 您應該沿着每條線測試更多點
  • 如果有進有出,則找到交點並僅切開內部
  • 您也可以使用向量方法進行內部測試,但必須處理多個重疊

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM