首页 > 其他分享 >VTK知识学习(3)-显示圆柱

VTK知识学习(3)-显示圆柱

时间:2024-11-08 22:18:04浏览次数:3  
标签:圆柱 场景 渲染 renderWindowControl VTK 知识 设置 vtkRenderer cylinderSource

1、添加显示控件

前台界面

 <WindowsFormsHost x:Name="windowHost" Grid.Row="1"/>

构造函数中添加。

  private RenderWindowControl renderWindowControl = new RenderWindowControl();

        public MainWindow()
        {
            InitializeComponent();
            windowHost.Child = renderWindowControl;
            // dd.Dock = DockStyle.Fill;
            // renderWindowControl.Load += renderWindowControl_Load;
        }

2、编写代码

显示一个圆柱体。

工作的基本流程是“数据源Souce”--“过滤器Filter”-- “制图器Mapper”-- “角色Actor”--“渲染器Renderer”。

 2.1、数据源Souce

vtkCylinderSource 派生自 vtkPolyDataAlgorithm 它生成的数据类型是 vtkPolyData,
 主要是生成一个中心在渲染场景原点的柱体,柱体的长轴沿着Y轴,柱体的高度、截面半径等都可以任意指定。

2.2、过滤器Filter

vtkPolyDataMapper 渲染多边形几何数据(vtkPolyData),派生自 vtkMapper,将输入的数据转换为几何图元(点、线、多边形)进行渲染。

2.3、角色Actor

vtkActor 派生自 vtkProp3D类,渲染场景中数据的可视化表达 负责确定渲染场景中对象的位置、大小和方向等信息。
           依赖于两个对象:

  • 、Mapper(vtkMapper)对象,负责存放数据和渲染的信息。
  • 、属性(vtkProperty)对象,负责控制颜色、不透明度等参数。

            另外 vtkActor中还可以设置纹理(vtkTexture)对象,用于纹理贴图。

2.4、渲染器Renderer

 vtkRenderer 负责管理场景的渲染过程。
 组成场景的包括Prop、照相机(vtkCamera)和光照(vtkLight)都被融合到一个vtkRender对象中。

2.5、 vtkRenderWindow

将操作系统与VTk渲染引擎连接到一起。可以有多个vtkRenderer对象,这些vtkRenderer可以渲染在窗口不同的矩形区域中或者覆盖整个窗口区域。


        private void RenderCylinder()
        {
           
            vtkCylinderSource cylinderSource = vtkCylinderSource.New();
            cylinderSource.SetHeight(3.0);   //设置高
            cylinderSource.SetRadius(1.0);   // 设置半径
            cylinderSource.SetResolution(100);  //设置横截面的等边多边形的边数。

          
            vtkPolyDataMapper polyDataMapper = vtkPolyDataMapper.New();
            //VTK可视化管线的输入数据接口,对应的可视化管线的输出数据接口为GetOutputPort().
            polyDataMapper.SetInputConnection(cylinderSource.GetOutputPort());

     
            vtkActor actor = vtkActor.New();
            actor.SetMapper(polyDataMapper); //用于设置生成几何图元的Mapper,即连接一个Actor到可视化管理的末端。

           
            vtkRenderer renderer = vtkRenderer.New();
            renderer.AddActor(actor);       //将vtkProp类型的对象添加到渲染场景中。
            renderer.SetBackground(0.3, 0.6, 0.7); //设置渲染场景的背景颜色,用RGB的格式设置。还有其它函数可以设置渐变效果。

          
            vtkRenderWindow renWin = renderWindowControl.RenderWindow;
            renWin.AddRenderer(renderer);                   // 添加渲染器
            renWin.Render();
        }

3、效果

标签:圆柱,场景,渲染,renderWindowControl,VTK,知识,设置,vtkRenderer,cylinderSource
From: https://blog.csdn.net/weixin_45114627/article/details/143625438

相关文章

  • hive基础知识分享(三)
    写在前面今天继续学习hive部分的知识。Hive中如何实现行列转换一行变多行可以对表使用LATERALVIEWEXPLODE(),也可以直接使用EXPLAIN()函数来处理一行数据。SELECTname,col1FROMtestarray2LATERALVIEWEXPLODE(weight)t1AScol1;多行变一行使用GROUPBY+......
  • 学科专业知识——计算机基础知识
    强化练习(答案在后面,有疑问的私)1.1946年诞生的世界上公认的第一台通用电子数字计算机是(  )。A.UNIVAC-I   B.EDVAC   C.ENIAC   D.IBM6502.一般认为计算机硬件的发展经过了四个阶段,第一代电子计算机的主要元器件是(  )。A.电子管   B.晶体管   ......
  • 【前端知识】JS模块规范
    JS模块规范概述CommonJS规范代码示例AMD规范代码示例ES6Module规范代码示例IIFE规范代码示例全局变量代码示例CommonJS模块和ES6模块有什么区别?1.语法和声明方式2.动态和静态导入3.循环依赖4.默认导出和命名导出5.文件扩展名6.环境和应用7.工具和构......
  • 【前端知识】es6基础语法介绍
    ES6基础语法介绍概述1.变量声明:let和const2.模板字符串3.解构赋值4.箭头函数5.默认参数值6.类(Classes)7.模块8.扩展运算符(SpreadOperator)9.对象字面量增强10.符号(Symbols)11.迭代器(Iterators)和生成器(Generators)12.承诺(Promises)基本数据类型1.字符串(String......
  • 神经网络基础知识
    神经网络基础知识二分类任务(BinaryClassification)在二分类问题中,目标是将输入(如图片、文本或其他数据)分为两类之一,通常使用标签0和1来表示不同的类别。以图像识别为例,假设我们需要判断一张图片中是否包含猫。我们可以将包含猫的图片标记为标签1,不包含猫的图片标记为标签0。......
  • 网络安全知识点梳理(期末不挂科)
    目录第一章漏洞类型一、操作系统漏洞二、网络协议漏洞三、数据库漏洞四、网络服务漏洞第二章 OSI网络安全体系一、OSI参考模型回顾二、OSI网络安全体系第三章 网络安全机制一、网络访问控制二、数据加密与保护三、威胁情报与安全分析四、虚拟化和容器安全五......
  • 反欺诈算法 - 知识图谱最短路径算法-初识
    1.引言反欺诈技术在金融、电商、社交等行业中扮演着至关重要的角色。随着网络欺诈手段的日益复杂,传统的基于规则的反欺诈检测方法难以应对多变的欺诈模式。为此,知识图谱作为一种强大的数据结构,通过节点(实体)和边(关系)来表达和存储数据,成为了反欺诈检测的一个重要工具。结合......
  • 2024年青海省大学生首届网络安全知识与技能大赛——赛题回顾及基本讲解_青海省大学生
    还有兄弟不知道网络安全面试可以提前刷题吗?费时一周整理的160+网络安全面试题,金九银十,做网络安全面试里的显眼包!王岚嵚工程师面试题(附答案),只能帮兄弟们到这儿了!如果你能答对70%,找一个安全工作,问题不大。对于有1-3年工作经验,想要跳槽的朋友来说,也是很好的温习资料!【完整版领......
  • 线段树知识乱讲
    前言算法竞赛题目考察的是选手对于数据结构的选取与算法的巧妙结合,而数据结构中线段树扮演一个至关重要的角色,而近期(CSP结束)在hfu的安排下我们需要自己弄一周的ds,所以就有了这篇奇妙的博客。线段树基础知识在我看来,线段树其实就是在数组的基础上添加了一些额外的点,这些点用......
  • GA/T1400视图库平台EasyCVR多品牌摄像机视频平台前端监控摄像头镜头的基础知识
    在现代安全监控系统中,摄像机镜头作为捕捉图像的关键组件,其选择和应用直接影响到监控图像的质量和系统的整体性能。随着技术的发展,摄像机镜头的种类和功能也在不断扩展,以适应各种复杂的监控环境和需求。对于相机成像来讲,镜头是不可或缺的一部分,本篇文章在于帮助大家熟悉摄像机镜头......