繁体   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