vtkPoint数据高度渲染显示

该代码段展示了如何在vtk框架下进行3D点云数据的处理和渲染。通过设置数据源、应用滤波器(如顶点图元过滤器和海拔过滤器)、颜色映射以及设置渲染参数,最终在渲染器中添加演员(actor)以展示三维效果。
摘要由CSDN通过智能技术生成

以下是主要显示代码

 public void SetElevation(vtkPoints points, ref vtkRenderer render)
        {
            //数据源
            vtkPolyData polydata = vtkPolyData.New();
            polydata.SetPoints(points);
            double[] bounds = points.GetBounds();

            //滤波器
            vtkVertexGlyphFilter glyphFilter = vtkVertexGlyphFilter.New();
            glyphFilter.SetInputConnection(polydata.GetProducerPort());
            vtkElevationFilter filter = vtkElevationFilter.New();
            filter.SetInputConnection(glyphFilter.GetOutputPort());
            filter.SetLowPoint(0, 0, bounds[4]);
            filter.SetHighPoint(0, 0, bounds[5]);
            //filter.SetLowPoint(0, 0, -1);
            //filter.SetHighPoint(0, 0, 1);

            //lut
            vtkLookupTable lut = vtkLookupTable.New();
            lut.SetHueRange(0.6, 0);
            lut.SetSaturationRange(0.5, 1);
            lut.SetValueRange(1, 1);

            //映射器
            vtkPolyDataMapper mapper = vtkPolyDataMapper.New();
            mapper.SetLookupTable(lut);
            mapper.SetInputConnection(filter.GetOutputPort());

            //演员
            vtkActor actor = vtkActor.New();
            actor.SetMapper(mapper);
            actor.GetProperty().SetPointSize(1);

            //渲染
            vtkCamera cam = vtkCamera.New();
            cam.SetFocalPoint(0, 0, 0);
            cam.SetPosition(bounds[1] - bounds[0], bounds[3] - bounds[2], 700);
            cam.SetPosition(bounds[1] - bounds[0], 100, 800);
            cam.ComputeViewPlaneNormal();
            cam.SetViewUp(0, 1, 0);
            cam.Zoom(2);
            render.SetActiveCamera(cam);
            render.AddActor(actor);
        }

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值