作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在 OpenGL 中渲染一个四面体网格。每个四面体的每个面都使用一个三角形绘制(每个四面体总共有 4 个三角形)。我正在寻找一种简单的方法来移除网格的内部元素。例如,如果网格的形状是一个单位球体(以原点为中心),我可以平均四面体中每个面的三个坐标,只绘制距离原点距离最大的面。这将产生一个球壳。
我正在使用的网格比球体更复杂:)。
最佳答案
我相信,根据您的描述,当面只是一个四面体的一部分时,它就是壳的一部分。您可以通过创建面的每个点的连接点列表来找到面所属的四面体的数量。然后找出每个列表中有多少点在所有三个列表中是相同的 - 这是一个面/三角形所属的四面体的数量。
我能想到的高级伪代码是:
bool isPartOfShell(Triangle triangle)
{
foreach(Point p in triangle)
make a list of all connected points in p
x = the number of points common in all lists
return x == 1;
}
关于c++ - 删除四面体网格中内部元素的算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12094200/
我想绘制 3-simplex,它包含 3D 中的一些随机点。例如: pts <- rnorm(30) pts <- matrix(pts, ncol = 3) 有了这些点,我想计算刚好包含这些点的 3
我是一名优秀的程序员,十分优秀!