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();
标签:
PCL
【推荐】2025 HarmonyOS 鸿蒙创新赛正式启动,百万大奖等你挑战
【推荐】博客园的心动:当一群程序员决定开源共建一个真诚相亲平台
【推荐】开源 Linux 服务器运维管理面板 1Panel V2 版本正式发布
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 「EF Core」框架是如何识别实体类的属性和主键的
· 独立开发,这条路可行吗?
· 我在厂里搞 wine 的日子
· 如何通过向量化技术比较两段文本是否相似?
· 35+程序员的转型之路:经济寒冬中的希望与策略
· 推荐 5 款实用的 Docker 可视化管理工具,工作效率翻倍!
· 瞧瞧别人家的接口重试,那叫一个优雅!
· 独立开发第二周:构建、执行、规划
· 【EF Core】框架是如何识别实体类的属性和主键的
· MySQL 13 为什么表数据删掉一半,表文件大小不变?