• 2024-08-24VTK随笔三:坐标系统、空间变换、VTK管线、VTK智能指针
    一、坐标系统 Model坐标系统:定义模型时所采用的坐标系统,通常是局部的笛卡尔坐标系。World坐标系统:是放置Actor的三维空间坐标系,Actor(vtkActor类)其中的一个功能就是负责将模型从Model坐标系统变换到World坐标系统。每一个模型可以定义自己的Model坐标系统,但World坐标系只有
  • 2024-08-23VTK随笔二:三维场景的基本要素
    一、灯光        剧场里有各式各样的灯光,三维渲染场景中也一样,可以有多个灯光存在。灯光和相机是三维渲染场景必备的要素,如果没有指定,vtkRenderer会自动创建默认的灯光和相机。VTK里用类vtkLight来表示渲染场景中的灯光。与现实中的灯光类似,VTK中的vtkLight示例也可以
  • 2023-10-15VTK 判断一个 点 是否在一个模型 stl 内部 vtk 点是否在内部 表面 寻找最近点
    判断一个点,判断是否在风格stl模型内部,或表面:目录1.方案一:使用vtkCellLocator  FindClosestPoint找到模型上距离给定点最近的一点,计算两点的距离,小于某一阈值则认为此点在模型上;2.方案二使用vtkKdTreePointLocator3.方案三使用vtkSelectEnclosedPoints1.方案一:使用vtk
  • 2023-07-22VTK+OCC显示CAD模型
    VTK是一款十分优秀的可视化套件,开源且功能强大,基本上可以满足有限元领域的全部可视化需求。遗憾的是,VTK不支持CAD模型(如igs、stp格式的模型)的显示。在网上搜索后可以发现,在不花钱的情况下,想要显示和处理CAD模型,基本上都得使用OpenCasCade,即OCC。OCC有自己的可视化系统,也可以集成
  • 2023-07-13VTK 生成MIP图像-vtkImageSlabReslice类
    MIPMIP(Maximum/MinimumIntensityProjection),最大/最小密度投影重建。MIP可以较真实地反应组织密度差异,使得血管的异常改变、形态、走形强化;但是只适用于外观形态的显示。在容积扫描数据中对每条径线上每个像素的最大强度值进行编码并投射成像。MIP的灰阶度反映CT值的
  • 2023-06-25VTK 体绘制之vtkVolume
    基本概念vtkVolume类似于几何渲染中的vtkActor,用于表示渲染场景中的对象。除了存储基本的变换信息(平移、旋转、放缩等),其内部还存储了两个重要对象。这两个对象分别是vtkAbstactVolumeMapper对象和vtkVolumeProperty对象。相应的函数如下。1)voidSetMapper(vtkA
  • 2023-05-20VTK 设置面片背面颜色
    在上一篇文章切开了零件,发现零件内部和外部颜色一样,当需要不一样时,可以通过actor的SetBackfaceProperty方法设置背面属性。代码跟上一篇几乎一样,只是给actor设置了SetBackfaceProperty。//定义背面材质属性vtkNew<vtkProperty>backfaceProp;backfaceProp->SetDiffuseColor(0
  • 2023-05-20VTK 平面裁剪
    有些时候需要显示零件内部情况,所有会对零件显示进行平面裁剪,这里用到了vtkPlane和vtkClipPolyData。vtkPlane是定义一个平面,vtkClipPolyData使用vtkPlane定义的平面进行裁剪。下面列出主要的代码,其他Qt框架代码参考前面文章。QSurfaceFormat::setDefaultFormat(QVTKOpenGLNati
  • 2023-05-19VTK 显示3D网格线
    在VTK9.1.0在Windows10+VS2019+Qt5.15.2环境下编译安装的Qt例子中,想显示球体表面的网格线。通过vtkExtractEdges来实现显示全部网格线QSurfaceFormat::setDefaultFormat(QVTKOpenGLNativeWidget::defaultFormat());vtkNew<vtkRenderer>renderer;vtkNew<vtkNam