当前位置: 首页 > news >正文

VTK的两种显示刷新方式

       

在类中先声明vtk的显示对象 

        vtkRenderer out_render;
        vtkVertexGlyphFilter glyphFilter;
        vtkPolyDataMapper mapper;             // 新建制图器
        vtkActor actor;                       // 新建角色

然后在init中先初始化一下:

            out_render = vtkRenderer.New();
            glyphFilter = vtkVertexGlyphFilter.New();
            mapper = vtkPolyDataMapper.New();             // 新建制图器
            actor = vtkActor.New();                       // 新建角色

然后在显示方法中,可以通过一个变量AutoSize来控制显示方式,当为true时,每次加载数据都新建,相当于初始化,这样每次都会刷新界面显示,包含显示比例等,当为false时,不会再次新建,因此显示的比例保持不变,只是显示内容会刷新。

        //将点云对象可视化
        vtkRenderer showPointCloud(PointCloudXYZ in_pc)
        {
            if(AutoSize)
            {
                out_render = vtkRenderer.New();
                glyphFilter = vtkVertexGlyphFilter.New();
                mapper = vtkPolyDataMapper.New();             // 新建制图器
                actor = vtkActor.New();                                // 新建角色
            }


            if (cloud != null && cloud.Width > 0)
            {
                points.Reset();
                points.Initialize();

                //把点云指针中的点依次放进points
                for (int i = 0; i < cloud.Size; i++)
                {
                    points.InsertNextPoint(cloud.GetX(i), cloud.GetY(i), cloud.GetZ(i));
                }
                colors_rgb = setColorBaseAxis('z', cloud);                      //创建每个点的属性数据,这里代表颜色  vtkUnsignedCharArray 
                polydata.SetPoints(points);                                     //将points数据传进polydata
                polydata.GetPointData().SetScalars(colors_rgb);                 //将点数据的颜色属性传进polydata
                glyphFilter.SetInputConnection(polydata.GetProducerPort());

                //设置颜色模式,这个是默认模式,不加也行
                //即把unsigned char类型的标量属性数据当作颜色值,不执行隐式。对于其他类型的标量数据,将通过查询表映射
                mapper.SetColorModeToDefault();
                mapper.SetScalarVisibility(1);
                mapper.SetInputConnection(glyphFilter.GetOutputPort());// 连接管道
                actor.SetMapper(mapper); // 传递制图器

                out_render.AddActor(actor);
                //添加颜色刻度表
                //out_render.AddActor(scalarBar);
                // 设置Viewport窗口
                out_render.SetViewport(0.0, 0.0, 1.0, 1.0);
                // 打开渐变色背景开关
                out_render.GradientBackgroundOn();
                out_render.SetBackground(0.2, 0.3, 0.3);
                out_render.SetBackground2(0.8, 0.8, 0.8);
                
            }
            return out_render;
        }

http://www.dtcms.com/a/109952.html

相关文章:

  • 06-Spring 中的事件驱动机制
  • JAVA学习小记之IO流04--转换流篇
  • EasyExcel 数据字典转换器实战:注解驱动设计
  • Django4.0的快速查询以及分页
  • Flink SQL-Client Kafka connector
  • Uni-app 项目 PDF 批注插件库在线版 API 示例教程
  • Ceph异地数据同步之-RBD异地同步复制(上)
  • 每日一题(小白)ASCLL娱乐篇5
  • ARM架构+CODESYS:解锁嵌入式边缘计算的实时控制新范式
  • MIT6.828 Lab3-2 Print a page table (easy)
  • 大数据学习(98)-数据治理
  • 预测分析(二):基于机器学习的数值预测
  • 【大模型基础_毛玉仁】6.3 知识检索
  • API接口调用
  • 通信算法之256: 无人机Remote ID(远程识别)
  • adc推荐,单通道,双极性采集
  • 最近常用 python 记录
  • 环境数据综合分析系统
  • 贤小二c#版Yolov5 yolov8 yolov10 yolov11自动标注工具 + 免python环境 GPU一键训练包
  • 贴片加工SMT厂核心工艺解析
  • 码界奇缘 Java 觉醒 第二章 变量迷城
  • 计算机网络-TCP的重传机制
  • 清晰易懂的 Flutter 开发环境搭建教程
  • java短连接,长连接
  • Linux命令-uniq
  • RAGFlow部署与使用介绍-深度文档理解和检索增强生成
  • 本地部署 Firecrawl 爬虫让 AI 知识库更丰满
  • Java创建对象和spring创建对象的过程和区别
  • AI赋能数据库管理“最后一公里”,融合架构重塑数据库承载成本效能——zCloud 6.7与zData X 3.3正式发布
  • MonkeyDev 如何创建一个root级级别的app,并执行root命令获取iphone设备序列号serialNumber(ios15.8)