从三角形网格中查找面

Posted

技术标签:

【中文标题】从三角形网格中查找面【英文标题】:Find faces from triangles mesh 【发布时间】:2014-10-27 17:13:38 【问题描述】:

我有这样的结构。

struct triangle 
    point a, b, c; // three dimensional point (x, y, z)

vector<triangle> triangles

我需要编写一个算法来从这个三角形网格中获取独特的面。

我试图找出有关此的信息,但所有的来源都是这种方法:http://openframeworks.cc/documentation/3d/ofMesh.html#show_getUniqueFaces

不幸的是,我无法将任何框架添加到我的程序中。 我的几何学有点低,所以如果有人给我一些建议,我会很高兴。

【问题讨论】:

那么,您尝试过什么?你有什么问题? @Escualo 抱歉。我已经更新了消息。 【参考方案1】:

制作一个以三角形为节点的图形。如果两个三角形共享两个顶点并且它们的法向量相距小于 A 度(dot(u, v) > cos(A)),则它们之间有一条边。在图中找到连通分量。每个连接的组件对应于一组三角形,这些三角形构成了网格的一个面。

A 越接近 0,网格“面”的定义越平滑。

【讨论】:

以上是关于从三角形网格中查找面的主要内容,如果未能解决你的问题,请参考以下文章

3D 封闭网格汽车对象的体积

Unity Mesh 初体验

three.js(13)-三角形面

从顶点数组生成三角形网格的算法

切割表面网格

Three.js教程:Face3对象定义Geometry的三角形面