MFC单文档中进行plc点云显示
时间:2021-07-12
本文章向大家介绍MFC单文档中进行plc点云显示,主要包括MFC单文档中进行plc点云显示使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
1 m_viewer.reset(new pcl::visualization::PCLVisualizer("viewer", false));//初始化pcl::viewer对象 2 m_viewer->addCoordinateSystem(); //设置对应的坐标系 3 m_viewer->setBackgroundColor(0.0, 0.0, 0.0);//设置背景颜色 4 m_viewer->initCameraParameters();//初始化相机的参数 5 m_win = m_viewer->getRenderWindow();//将view中的渲染窗口的句柄传递给vtk window 6 m_iren = vtkRenderWindowInteractor::New(); //初始化vtkwindow交互的对象 7 m_viewer->resetCamera();//使点云显示在屏幕中间,并绕中心操 8 9 10 CRect rect; 11 GetClientRect(&rect);//实时获取MFC窗口大小 12 m_win->SetSize(rect.right - rect.left, rect.bottom - rect.top);//根据当前窗口的大小设置vtk 窗口的大小 13 //m_viewer->addCoordinateSystem(1); 14 m_win->SetPosition(0, 0); 15 m_win->SetParentId(this->m_hWnd);//设置vtk窗口的句柄 16 //m_iren->SetRenderWindow(m_win);//将vtk交互对象与vtk window绑定 17 //m_viewer->createInteractor(); 18 //m_viewer->setCameraPosition(0, 20, 0, 0, 1, 0); 19 20 21 22 23 24 25 //1.创建vtkRenderer对象,用于渲染 26 vtkSmartPointer<vtkRenderer > aRenderer = vtkSmartPointer<vtkRenderer >::New(); 27 //2.将vtkRender绑定到vtkRenderWindow 28 m_win->AddRenderer(aRenderer); 29 //3.将vtkRenderWindow绑定到vtkRenderWindowInteractor 30 m_iren->SetRenderWindow(m_win); 31 //4 vtkpolydata 读取 32 vtkSmartPointer<vtkPolyDataReader> vtkReader = vtkSmartPointer<vtkPolyDataReader >::New(); 33 vtkReader->SetFileName("G://001_project_code//LmsAnGangGanMeiPeng//test_data//pit_reconstruct.vtk"); 34 //5.声明vtkPolyDataMapper 35 vtkSmartPointer<vtkPolyDataMapper > skinMapper = vtkSmartPointer<vtkPolyDataMapper >::New(); 36 //6.将vtkpolydata绑定到vtkPolyDataMapper 37 skinMapper->SetInputConnection(vtkReader->GetOutputPort()); 38 skinMapper->ScalarVisibilityOn();//打开颜色渐变色显示 39 //7.声明actor 40 vtkSmartPointer<vtkActor > skin = vtkSmartPointer<vtkActor >::New(); 41 //8.将vtkPolyDataMapper绑定actor 42 skin->SetMapper(skinMapper); 43 44 vtkSmartPointer<vtkCamera > aCamera = vtkSmartPointer<vtkCamera >::New(); 45 //aCamera->SetViewUp(0, 0, -1); 46 //aCamera->SetPosition(0, 1, 0); 47 aCamera->SetViewUp(0, 0, -1); //视角设置 48 aCamera->SetPosition(3328, 5466, 20066); 49 aCamera->SetFocalPoint(3328, 5466, 10066); 50 //aCamera->SetFocalPoint(0, 0, 0); 51 aCamera->ComputeViewPlaneNormal(); 52 //aCamera->Azimuth(30.0); 53 //aCamera->Elevation(30.0); 54 //aCamera->Dolly(1.5); 55 56 //9.将actor绑定到Render 57 aRenderer->AddActor(skin); 58 aRenderer->SetActiveCamera(aCamera); 59 aRenderer->ResetCamera(); 60 //aRenderer->SetBackground(.2, .3, .4); 61 62 63 aRenderer->SetBackground(.1, .3, .1); 64 aRenderer->ResetCameraClippingRange();
原文地址:https://www.cnblogs.com/codeAndlearn/p/15001197.html
- 报警系统QuickAlarm之频率统计及接口封装
- 如何使用Sentry管理Hive外部表权限
- 报警系统QuickAlarm之报警规则解析
- 报警系统QuickAlarm之报警规则的设定与加载
- 报警系统QuickAlarm之报警执行器的设计与实现
- 如何在Kerberos与非Kerberos的CDH集群BDR不可用时复制数据
- 一个可扩展的报警系统Quick-Alarm
- 如何借助GitHub搭建属于自己的maven仓库
- Java可以如何实现文件变动的监听
- 如何在CDH中安装Kudu&Spark2&Kafka
- 秒懂 javascript 拖拽上传文件
- 一款轻量级树形控件EasyTreeview
- 大白话谈 Git
- 打造一个属于自己的 server
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法