VTK 平面裁剪
有些时候需要显示零件内部情况,所有会对零件显示进行平面裁剪,这里用到了vtkPlane和vtkClipPolyData。
vtkPlane是定义一个平面,vtkClipPolyData使用vtkPlane定义的平面进行裁剪。
下面列出主要的代码,其他Qt框架代码参考前面文章。
QSurfaceFormat::setDefaultFormat(QVTKOpenGLNativeWidget::defaultFormat()); vtkNew<vtkRenderer> renderer; vtkNew<vtkNamedColors> colors; //定义球 vtkNew<vtkSphereSource> sphereSource; sphereSource->SetRadius(10); sphereSource->SetCenter(0, 0, 0); //定义平面 vtkNew<vtkPlane> plane; plane->SetOrigin(3,0,0); plane->SetNormal(-1, 0, 0); //定义裁剪 vtkNew<vtkClipPolyData> clipper; clipper->SetInputConnection(sphereSource->GetOutputPort()); clipper->SetClipFunction(plane); vtkNew<vtkDataSetMapper> clipMapper; clipMapper->SetInputConnection(clipper->GetOutputPort()); vtkNew<vtkActor> clipActor; clipActor->SetMapper(clipMapper); clipActor->GetProperty()->SetDiffuseColor(colors->GetColor4d("Tomato").GetData()); clipActor->GetProperty()->EdgeVisibilityOn(); //显示线框 renderer->AddActor(clipActor); renderer->SetBackground(colors->GetColor3d("SteelBlue").GetData()); vtkNew<vtkGenericOpenGLRenderWindow> renderWindow; renderWindow->AddRenderer(renderer); renderWindow->SetWindowName("RenderWindowNoUIFile"); ui.vtk_main->setRenderWindow(renderWindow);
显示如下:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?