C++ 从管曲面上的精确点生成曲面网格(三角剖分)
在以下情况下,建议使用什么方法生成特定类型实体的曲面网格 几何体是拉伸的三维“管”段。管段具有以下特性:C++ 从管曲面上的精确点生成曲面网格(三角剖分),c++,3d,mesh,cgal,delaunay,C++,3d,Mesh,Cgal,Delaunay,在以下情况下,建议使用什么方法生成特定类型实体的曲面网格 几何体是拉伸的三维“管”段。管段具有以下特性: 在每个X值处,横截面始终是Y-Z平面中的简单多边形 多边形不一定是凸的 当X被遍历时,多边形不一定是恒定的;它们平滑地扩张和/或改变形状,多边形的区域平滑地变化 每个X=const多边形的质心,如果用简单的线段连接在一起,将形成一条非常平滑、性能良好的“线”,具有最平缓的曲率,没有急弯、褶皱或循环等 曲面截面由X=X_起点和X=X_终点处的平面横截面多边形覆盖 目标: 生成管曲面的三角
- 在每个X值处,横截面始终是Y-Z平面中的简单多边形
- 多边形不一定是凸的
- 当X被遍历时,多边形不一定是恒定的;它们平滑地扩张和/或改变形状,多边形的区域平滑地变化
- 每个X=const多边形的质心,如果用简单的线段连接在一起,将形成一条非常平滑、性能良好的“线”,具有最平缓的曲率,没有急弯、褶皱或循环等
- 曲面截面由X=X_起点和X=X_终点处的平面横截面多边形覆盖
- 生成管曲面的三角化曲面网格,考虑到其起点和终点由平面横截面曲面限定的事实
- 网格应为管状体,而不是管状体的凸面外壳
- 如果管表面网格保持由X=X_开始和X=X_结束处的顶点形成的平面简单多边形横截面的属性,那么我有可以对端盖进行网格划分的现有代码;我试图解决的真正问题是生成三维管曲面网格。如果解决方案也可以生成端盖,那也可以。但是,出于输出目的,端盖表面需要能够识别
- 生成网格后,需要以OFF等格式编写,我认为我可以根据CGAL中包含的代码、示例等进行处理。这里的要点是,生成网格后,我不需要以编程方式进一步处理网格(例如变形、添加/删除点)
- 在X_起点和X_终点之间的任意数量的X=const站上,我有多边形横截面管曲面顶点;创建/导入点时,我可以根据需要控制X方向上的间距
- 顶点正好位于管曲面上,并且不会被任何噪波、啮合、采样、近似等损坏
- 我不能保证形成每个横截面多边形的顶点的相对位置,除了多边形顶点是顺时针方向
- 我可以根据多边形顶点的Y-Z分量生成它们的法线,但我没有关于它们在X方向的法线分量的先验信息
- 如果需要,我可以在端盖上生成任意数量的顶点
- 现在,顶点是3空间浮点坐标值,但如果它能有所帮助,我可以将每个横截面转换为正式的CGAL 2D排列
- 估计的顶点数可能少于1000个,肯定少于15K。处理时间并不重要
- 理想情况下,曲面网格将只使用我拥有的顶点,而不减去或移动任何顶点,但这不是一个硬约束,只要它们“接近”
- 我需要简单的多边形顶点在X_开始和X_结束,这样我就可以盖的表面预期
我也看到了这个问题,它似乎有一些相似之处(只是试图保留输入点,以及一些表面属性的先见之明),但最后我认为我的用例太不同了。您是否有一个可以共享的示例数据集?如果我正确理解了您的问题,我们有一个可行的实施方案。可能的重复