【问题标题】:Generate the faces of a 3D object given its points and edges给定点和边,生成 3D 对象的面
【发布时间】:2018-03-15 13:39:14
【问题描述】:

我有一个由 3D 点和边组成的 3D 线框。如何识别构成 3D 对象面的顶点集?

我正在使用QT 并希望在给定点集和边集的情况下渲染一个 3D 对象。我能做的最好的事情是给三个点形成一个三角形的脸,我可以用 3D 渲染它。但是如何在给定更多点和边缘的情况下做同样的事情呢?或者,或者,如何将集合分解为形成三角形面的 3 个点?

【问题讨论】:

  • @SeverinPappadeux 多边形三角剖分将在识别人脸后进行。但首先,如何识别人脸,这在 3D 图中本质上是平面循环。
  • 好的,我明白了。那么从en.wikipedia.org/wiki/Polygon_mesh你有什么样的顶点-边表示?
  • @SeverinPappadeux 我有 3D 点作为 (x,y,z) 数组和边作为 (point1, point2)。我想使用此信息导出(三角形)面,以便我可以使用 QT 渲染对象。
  • 那么,您有基本的 VV 网格,没有面,并且想要获取面并对其进行三角测量并将它们发送到一些 3D 显示工具,对吗?嗯...我会看看 openmesh.org 并阅读史密斯论文algorithmicbotany.org/papers/smithco.dis2006.pdf

标签: c++ qt 3d face 3d-rendering


【解决方案1】:
  • 只需选取第一条边及其顶点(V1 和 V2)。
  • 找到所有使用 V2 的边 - 它们的第二个顶点是您潜在的 V3。
  • 对于每个潜在的 V3,检查是否有边 V1-V3 - 如果有,那么您找到了三角形 V1-V2-V3。对于大多数网格,您应该有一个或两个这样的三角形。添加新三角形时,请务必检查是否尚未找到。
  • 对使用 V1 的边执行相同操作。
  • 取下一个边并重复。

根据您的确切数据、边缘方向等,可能需要稍作修改,但您应该明白这一点。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-11-26
    • 1970-01-01
    • 2022-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-24
    • 1970-01-01
    相关资源
    最近更新 更多