【摘要】:由11.3.2节内容可知,Dirichlet自由变形算法在二维空间比较直观,推广到三维空间以后,涉及的Delaunay三角剖分和Voronoi图的生成由面变成体,数据量加大,算法复杂度加深。Dirichlet自由变形算法在三维空间的实现步骤如下:1)设计控制点集合,控制点可以在待变物体的表面上,也可以在物体的内部,但是物体需要变形的部分必须包含在控制点集合的凸包内。3)对单个点物体的Sibson邻居集合,进行Delaunay三角剖分,根据三角剖分结果,求物体点所在的Voronoi单元和Voronoi单元的体积。
由11.3.2节内容可知,Dirichlet自由变形算法在二维空间比较直观,推广到三维空间以后,涉及的Delaunay三角剖分和Voronoi图的生成由面变成体,数据量加大,算法复杂度加深。Dirichlet自由变形算法在三维空间的实现步骤如下:
1)设计控制点集合,控制点可以在待变物体的表面上,也可以在物体的内部,但是物体需要变形的部分必须包含在控制点集合的凸包内。
2)对设计好的控制点进行三角剖分,并保存剖分结果的四面体集合。对物体上的每个点遍历控制点的四面体集合,进而找出影响该物体点的控制点集合,即与每个物体点相应的Sibson邻居集合。
3)对单个点物体的Sibson邻居集合,进行Delaunay三角剖分,根据三角剖分结果,求物体点所在的Voronoi单元和Voronoi单元的体积。(www.xing528.com)
4)计算每个控制点剖分物体点Voronoi单元所生成的Voronoi单元及相应的体积,由每个控制点剖分求得的体积与物体点Voronoi单元体积之比即为控制点相对于物体点的Sibson坐标值。
5)对物体上的所有点进行3)、4)的操作,求出每个物体点的Sibson邻居的坐标值。
6)移动控制点,可以用任意方法移动一个或一组控制点,然后查找受到影响的物体点,并根据上一步的Sibson坐标值计算出物体点的新位置,从而达到物体的变形。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。