这又是一个关于CGAL 3D曲面网格物体的问题。
http://doc.cgal.org/latest/Surface_mesher/index.html#Chapter_3D_Surface_Mesh_Generation
定义
Surface_3 surface(sphere_function, // pointer to function
Sphere_3(CGAL::ORIGIN, 64.0)); // bounding sphere
(在示例代码中也给出)我定义了一个由< sphere函数给出的隐式曲面'和一个半径为8的Sphere_3。
现在的区别在于,'球体的零点功能'是(与其现在误导性的名称相反)不再受限于Sphere_3。而是' sphere_function'表示一个无界面(想想x ^ 2 + y ^ 2 - z ^ 2 - 1 = 0),我的目的是三角化它在Sphere_3中的部分。
在我的例子中,到目前为止,这种方法效果很好,如果只是为了讨论一些烦人的问题,我不知道如何克服:隐含表面与球体相遇的边界非常粗糙"或者"锯齿状的"超过可接受的金额。
我已经尝试了' Manifold_with_boundary_tag()',但它没有给出任何改进。
改善我正在考虑的输出的一条道路是将三角网格(C2t3)转换为Polyhedron_3,并将其转换为Nef_polyhedron,并将其与Nef_polyhedron相交,其近似于稍小的Sphere。但这似乎有点像用大炮射击麻雀,但我目前没有更好的主意,谷歌搜索也给了我没有任何暗示。所以我的问题:该怎么办?可以用CGAL(和适度的编程工作)来完成,还是使用另一个系统是必要的还是更好的?
(只是为了解释我需要的东西:我尝试开发一个程序,构建代数表面的3D打印模型,并且具有平滑和边界平滑三角测量是我能够交出前的最后一步表面到OpenSCAD以生成一个恒定厚度的实体。
答案 0 :(得分:3)
我看到的唯一解决方案是使用具有清晰特征保留的3D网格生成,并且没有关于单元格的标准。您必须自己提供边界球体与曲面的交点。 user manual中有两个交叉球体的例子。