首页 > 其他分享 >VTK 设置面片背面颜色

VTK 设置面片背面颜色

时间:2023-05-20 12:12:18浏览次数:33  
标签:面片 背面 backfaceProp VTK SetBackfaceProperty renderWindow clipActor vtkNew

在上一篇文章切开了零件,发现零件内部和外部颜色一样,当需要不一样时,可以通过actor的SetBackfaceProperty方法设置背面属性。

代码跟上一篇几乎一样,只是给actor设置了SetBackfaceProperty。

//定义背面材质属性
vtkNew<vtkProperty> backfaceProp;
backfaceProp->SetDiffuseColor(0, 1, 0);
//设置背面属性
clipActor->SetBackfaceProperty(backfaceProp);

显示如下:

 

全部代码如下:

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(); //显示线框
        
//定义背面材质属性
vtkNew<vtkProperty> backfaceProp;
backfaceProp->SetDiffuseColor(0, 1, 0);
//设置背面属性
clipActor->SetBackfaceProperty(backfaceProp);

renderer->AddActor(clipActor);

renderer->SetBackground(colors->GetColor3d("SteelBlue").GetData());

vtkNew<vtkGenericOpenGLRenderWindow> renderWindow;
renderWindow->AddRenderer(renderer);
renderWindow->SetWindowName("RenderWindowNoUIFile");
ui.vtk_main->setRenderWindow(renderWindow);

 

标签:面片,背面,backfaceProp,VTK,SetBackfaceProperty,renderWindow,clipActor,vtkNew
From: https://www.cnblogs.com/SamFang/p/17417018.html

相关文章

  • VTK 平面裁剪
    有些时候需要显示零件内部情况,所有会对零件显示进行平面裁剪,这里用到了vtkPlane和vtkClipPolyData。vtkPlane是定义一个平面,vtkClipPolyData使用vtkPlane定义的平面进行裁剪。下面列出主要的代码,其他Qt框架代码参考前面文章。QSurfaceFormat::setDefaultFormat(QVTKOpenGLNati......
  • 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配置,则改......
  • VTKImageData 手动释放内存资源
    一.VtkSmartPointer 使用智能指针创建对象,则无需手动调用Delete()方法减少引用计数,因为引用计数的增加与减少都是由智能指针自动完成的。VTK实现了便利的自动内存管理的概念,使用引用计数。与其他智能指针不同之处在于引用计数保留在VTK对象本身中,而不是智能指针类中。这样的好......
  • 【VTK学习笔记】VTK基本数据结构_3.2数据对象和数据集
    任务:把几何结构和拓扑结构加入到数据集中1.无拓扑结构1#include<vtkSmartPointer.h>2#include<vtkPoints.h>//几何结构3#include<vtkPolyData.h>//数据集......
  • 解决 vtkImageReslice MPR斜切面会出现灰色边框问题
    一、问题情况在旋转过程中会产生灰色边框现象:  二、产生原因进行斜切时,原始体数据的实际切面比输出的图片尺寸(矩形)小,因此会在空出的部分会用默认值进行填充,默认值为......
  • geotools之GeometryBuilder创建3D的多边形——面片
    说到3D,大家想到的都是物体。。但是如果3D的线和3D的面。。难道就不能创建吗?参考1:https://docs.geotools.org/stable/javadocs/org/geotools/geometry/jts/GeometryBuilde......
  • VTK-9.2 .lib文件列表
    vtkcgns-9.2d.libvtkChartsCore-9.2d.libvtkCommonColor-9.2d.libvtkCommonComputationalGeometry-9.2d.libvtkCommonCore-9.2d.libvtkCommonDataModel-9.2d.libvtkCommonE......
  • vtk 鼠标截取数据 使用 vtkClipPolyData 裁剪删除选中的矩形区域
    vtkVolumeMapper类中提供了两种裁剪技术,分别为Cropping和Clipping按键盘R可以进行矩形区域裁剪,再按R返回正常状态效果:#include"InteractorStyle.hpp"#pragmaonce#includ......
  • QImage从VtkImageData中加载16图片 导出PNG格式
    项目背景:1.前后端采用websocket通讯,后端处理得到的结果通过png数据格式返回前端2.常规的8位png图像只能由256个灰阶,动态范围小,不能在前端进行窗宽窗位调节,因此需要使用16......