首页 > 其他分享 >VTK 平面裁剪

VTK 平面裁剪

时间:2023-05-20 11:55:17浏览次数:30  
标签:sphereSource VTK 裁剪 renderer renderWindow 平面 clipActor vtkNew

有些时候需要显示零件内部情况,所有会对零件显示进行平面裁剪,这里用到了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);

 显示如下:

 

标签:sphereSource,VTK,裁剪,renderer,renderWindow,平面,clipActor,vtkNew
From: https://www.cnblogs.com/SamFang/p/17417000.html

相关文章

  • VTK 显示3D网格线
    在VTK9.1.0在Windows10+VS2019+Qt5.15.2环境下编译安装的Qt例子中,想显示球体表面的网格线。通过vtkExtractEdges来实现显示全部网格线QSurfaceFormat::setDefaultFormat(QVTKOpenGLNativeWidget::defaultFormat());vtkNew<vtkRenderer>renderer;vtkNew<vtkNam......
  • VTK 9.2 Qt 5.14 安装及错误处理
    参考VTK9.1.0在Windows10+VS2019+Qt5.15.2环境下编译安装以及VTK应用于QT_vtk-qt安装包_isongxw的博客-CSDN博客安装注意:编译release和debug,通过切换配置为release和debug,文件都是在cmake的CMAKE_INSTALL_PREFIX指定的文件夹,需要编译完一种后,把这个文件夹改名(比如debug配置,则改......
  • 以点类Point及平面图形类Plane为基础设计三角形类Triangle
    以平面图形类Plane为基类公有派生三角形类Triangle,main(void)函数完成对其的测试。Point类结构说明: Point类的数据成员包括:①私有数据成员:X坐标x(double型),Y坐标y(double型)。Point类成员函数包括:①有参构造函数Point(double,double)和拷贝构造函数Point(constPoint&)......
  • 几个jQuery的图片裁剪插件
    项目里最近也要用到图片裁剪插件,刚巧发现了几个就记录在这里。[color=blue][b]imgAreaSelect[/b][/color]官方:[url]http://odyniec.net/projects/imgareaselect/[/url]这个插件是目前比较常见的cooper插件,功能也很齐全:自定义选择框的CSS样式键盘快捷键支持添加事件回调锁......
  • 以点类Point及平面图形类Plane为基础设计圆类Circle
    以点类Point及平面图形类Plane为基类公有派生圆类Circle,main(void)函数完成对其的测试。Point类结构说明: Point类的数据成员包括:①私有数据成员:X坐标x(double型),Y坐标y(double型)。Point类成员函数包括:①有参构造函数Point(double,double)和拷贝构造函数Point(constPoin......
  • 【计算几何】Rust求解平面最近点对(寻找距离最近的两个点的距离)
    目录题目地址代码题目地址https://ac.nowcoder.com/acm/contest/52826/C代码usestd::io;usestd::cmp::Ordering;usestd::f64;#[derive(Debug,PartialEq,PartialOrd,Clone,Copy)]structPoint{x:f64,y:f64,}fneuclidean_distance(p1:&Point,p2:......
  • 使用Open3D进行PCD拟合平面的Python代码示例
    使用Open3D进行PCD拟合平面的Python代码示例 importopen3daso3dimportnumpyasnp#读取点云数据pcd=o3d.io.read_point_cloud("2023042501.pcd")#创建PCD图pcd_graph=o3d.geometry.PointCloudGraph(pcd)#选择要拟合的平面plane_cent......
  • 8.6 空间直线、平面的垂直
    \(\mathbf{{\large{\color{Red}{欢迎到学科网下载资料学习}}}}\)【高分突破系列】高一数学下学期同步知识点剖析精品讲义!\(\mathbf{{\large{{\color{Red}{跟贵哥学数学,so\quadeasy!}}}}}\)必修第二册同步拔高,难度3颗星!模块导图知识剖析线线垂直1异面直线所......
  • 8.4 平面与空间点、直线、面之间的位置关系
    \(\mathbf{{\large{\color{Red}{欢迎到学科网下载资料学习}}}}\)【高分突破系列】高一数学下学期同步知识点剖析精品讲义!\(\mathbf{{\large{{\color{Red}{跟贵哥学数学,so\quadeasy!}}}}}\)必修第二册同步拔高,难度3颗星!模块导图知识剖析平面无限延展,无边界.判......
  • linux下拆分PDF、批量裁剪图片及合并为PDF操作
    好久不碰代码,文件操作啥的快忘光了(你丫本来就没怎么学吧!)我先放两串代码在这QAQ拆分PDFpdftoppm-png?.pdfs批量裁剪图片裁剪图片指令,这个指令是ImageMagick带的一个什么东西,单位电脑能装convertsrc.png-crop长x高+起始像素点横坐标+起始像素低纵坐标dest.png然后......