行进多维数据集isovalue
我试图实现Marchin Cubes算法,但我有一些问题(这可能非常微不足道,但我似乎无法找到答案)。
当Isovalue = 5时,我有这样一个块:
0-------10
| |
| |
0-------5
由于0 <5,所以左侧角落都应标记为“关闭”。 10应该被标记为“开”,因为10> 5。但是在右下角的5点呢? 这应该打开还是关闭?
当我使用上面的例子使用lineair插值(假设5被标记为“开”),这是交点应该在哪里? (用x标记)
----x----
| |
| |
--------x
而当我画这个街区时,它应该基本上是两个x之间的界限吗?
提前致谢!
等值面是沿着直线计算的,所以你有一个isosurf和立方体边的交点,它给了你一个点。
如果iso恰好落在拐角处,这很少见,并且为了优化行进立方体,通常可以将任何角度向靠近拐角的97%靠拢,即4.8 = 5.0
该优化将防止您在该点周围出现多个小碎片顶点,即0.2宽度的顶点。 这是一个有用的优化。
我会在三维解释,因为这就是我所做的。
一旦立方体沿着一条直线或者一个角落具有交叉点,它将搜索数据库中可能存在的ISOsurf和立方体的交集模式。
相应的图案会为您提供在该立方体内实现的正确顶点,立方体可以具有四边形,例如三角形,它将使用ISO的值来确定三角形的大小。
所以,应该有点和线的交点以及相应的三角形指标全部起作用,并且基于立方体边角中的等值面位置的值来确定顶点的交点位置。
链接地址: http://www.djcxy.com/p/6355.html