当前位置: 首页 > 网络知识

VTK 实例58:三角剖分(表面重建)

时间:2026-01-29 09:25:22

1 #include <vtkAutoInit.h> 2 VTK_MODULE_INIT(vtkRenderingOpenGL2); 3 VTK_MODULE_INIT(vtkRenderingFreeType); 4 VTK_MODULE_INIT(vtkInteractionStyle); 5 6 #include <vtkSmartPointer.h> 7 #include <vtkProperty.h> 8 #include <vtkPoints.h> 9 #include <vtkPolyData.h> 10 #include <vtkPointData.h> 11 #include <vtkDelaunay2D.h> 12 #include <vtkMath.h> 13 #include <vtkPolyDataMapper.h> 14 #include <vtkActor.h> 15 #include <vtkRenderWindoh> 16 #include <vtkRenderer.h> 17 #include <vtkRenderWindowInteractor.h> 18 #include <vtkVertexGlyphFilter.h> 19 20 int main(int, char *[]) 21 31 } 32 33 vtkSmartPointer<vtkPolyData> polydata = 34 vtkSmartPointer<vtkPolyData>::New(); 35 polydata>SetPoints(points); 36 37 vtkSmartPointer<vtkDelaunay2D> delaunay = 38 vtkSmartPointer<vtkDelaunay2D>::New(); 39 delaunay>SetInputData(polydata); 40 delaunay>Update(); 41 42 vtkSmartPointer<vtkVertexGlyphFilter> glyphFilter = 43 vtkSmartPointer<vtkVertexGlyphFilter>::New(); 44 glyphFilter>SetInputData(polydata); 45 glyphFilter>Update(); 46 47 vtkSmartPointer<vtkPolyDataMapper> pointsMapper = 48 vtkSmartPointer<vtkPolyDataMapper>::New(); 49 pointsMapper>SetInputData(glyphFilter>GetOutput()); 50 51 vtkSmartPointer<vtkActor> pointsActor = 52 vtkSmartPointer<vtkActor>::New(); 53 pointsActor>SetMapper(pointsMapper); 54 pointsActor>GetProperty()>SetPointSize(3); 55 pointsActor>GetProperty()>SetColor(1,0,0); 56 57 vtkSmartPointer<vtkPolyDataMapper> triangulatedMapper = 58 vtkSmartPointer<vtkPolyDataMapper>::New(); 59 triangulatedMapper>SetInputData(delaunay>GetOutput()); 60 61 vtkSmartPointer<vtkActor> triangulatedActor = 62 vtkSmartPointer<vtkActor>::New(); triangulatedActor>SetMapper(triangulatedMapper); 64 65 vtkSmartPointer<vtkRenderer> renderer = 66 vtkSmartPointer<vtkRenderer>::New(); 67 renderer>AddActor(pointsActor); 68 renderer>AddActor(triangulatedActor); 69 renderer>SetBackground(1.0, 1.0, 1.0); 70 71 vtkSmartPointer<vtkRenderWindow> renderWindow = 72 vtkSmartPointer<vtkRenderWindow>::New(); 73 renderWindow>AddRenderer(renderer); 74 75 vtkSmartPointer<vtkRenderWindowInteractor> renderWindowInteractor = 76 vtkSmartPointer<vtkRenderWindowInteractor>::New(); 77 renderWindowInteractor>SetRenderWindow(renderWindow); 78 79 renderWindow>SetSize(640, 320); 80 renderWindow>Render(); 81 renderWindow>SetWindowName("PolyDataDelaunay2D"); 82 renderWindow>Render(); 83 84 renderWindowInteractor>Start(); 85 86 return EXIT_SUCCESS; 87 }



上一篇:ITK 实例7 向量图像(将一个向量存储到一个图像像素中)
下一篇:VTK 实例67:体绘制裁剪
VTK
  • 英特尔与 Vertiv 合作开发液冷 AI 处理器
  • 英特尔第五代 Xeon CPU 来了:详细信息和行业反应
  • 由于云计算放缓引发扩张担忧,甲骨文股价暴跌
  • Web开发状况报告详细介绍可组合架构的优点
  • 如何使用 PowerShell 的 Get-Date Cmdlet 创建时间戳
  • 美光在数据中心需求增长后给出了强有力的预测
  • 2027服务器市场价值将接近1960亿美元
  • 生成式人工智能的下一步是什么?
  • 分享在外部存储上安装Ubuntu的5种方法技巧
  • 全球数据中心发展的关键考虑因素
  • 英特尔与 Vertiv 合作开发液冷 AI 处理器

    英特尔第五代 Xeon CPU 来了:详细信息和行业反应

    由于云计算放缓引发扩张担忧,甲骨文股价暴跌

    Web开发状况报告详细介绍可组合架构的优点

    如何使用 PowerShell 的 Get-Date Cmdlet 创建时间戳

    美光在数据中心需求增长后给出了强有力的预测

    2027服务器市场价值将接近1960亿美元

    生成式人工智能的下一步是什么?

    分享在外部存储上安装Ubuntu的5种方法技巧

    全球数据中心发展的关键考虑因素