范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

VTK华为笔记本电脑深度deepinlinuxpython下安装和入门

  1 说明:
  =====
  1.1 vtk,(visualization toolkit)是一个开源的免费软件系统,主要用于三维计算机图形学、图像处理和可视化。
  1.2 是一个开源、跨平台、可自由获取、支持并行处理的图形应用函数库。
  1.3 vtk的内核是用C++构建的。
  1.4 是在三维函数库OpenGL的基础上采用面向对象的设计方法发展起来的。
  1.5 可以自由的通过Java,Tcl/Tk和Python各种语言使用vtk,本文主要是用python3下使用vtk。
  2 准备:
  =====
  2.1 环境:
  华为笔记本电脑、深度deepin-linux操作系统、python3.8和微软vscode编辑器。
  2.2 官网:https://vtk.org/ https://gitlab.kitware.com/vtk/vtk https://lorensen.github.io/VTKExamples/site/Python/  #代码来源 #对官方代码进行修改、删减、整理、注释,符合国人和小白要求
  2.3 源码安装:#第一步:官网,这个页面 https://vtk.org/download/ #本机下载是这个文件,速度很慢,大概1个小时 vtk-9.0.0-cp38-cp38-linux_x86_64.whl#第二步:将下载的文件放在桌面的VTK文件夹下,并打开终端进入该文件夹 cd /home/xgj/Desktop/VTK #安装 sudo pip3.8 install vtk-9.0.0-cp38-cp38-linux_x86_64.whl
  安装
  验证安装是否成功
  3 Helloworld:
  ==========
  3.1 熟悉wtk的GUI的基本设置:
  3.1.1 窗口标题名、窗口大小、窗口位置、背景颜色和代码结构。
  3.1.2 代码:#方法一: import vtk #---第一层:绘制器--- ren = vtk.vtkRenderer() # 负责管理场景的渲染过程 #注意颜色定义类似opengl的 ren.SetBackground(0.1, 0.2, 0.4)  #在这里设置背景颜色:蓝色 #---第二层:绘制窗口--- renWin = vtk.vtkRenderWindow() # 窗口标题名 renWin.SetWindowName("The first window")  #不支持中文 # 窗口大小 renWin.SetSize(800, 800) # 设置窗口位置:默认0,0==左上角 renWin.SetPosition(10, 10) # 绘制窗口添加绘制器 renWin.AddRenderer(ren) #---第三层:创建窗口交互器--- iren = vtk.vtkRenderWindowInteractor() iren.SetRenderWindow(renWin) iren.Initialize() iren.Start()#方法二: import vtk def main():     #---第一层:绘制器---     ren = vtk.vtkRenderer() # 负责管理场景的渲染过程     #注意颜色定义类似opengl的     ren.SetBackground(0.1, 0.2, 0.4)  #在这里设置背景颜色:蓝色     #---第二层:绘制窗口---     renWin = vtk.vtkRenderWindow()     # 窗口标题名     renWin.SetWindowName("The first window")  #不支持中文     # 窗口大小     renWin.SetSize(800, 800)     # 设置窗口位置:默认0,0==左上角     renWin.SetPosition(10, 10)     # 绘制窗口添加绘制器     renWin.AddRenderer(ren)     #---第三层:创建窗口交互器---     iren = vtk.vtkRenderWindowInteractor()     iren.SetRenderWindow(renWin)     iren.Initialize()     iren.Start()  if __name__ == "__main__":     main() #main()  #方法三,省略,就是不要if-name-main
  3.1.3 图:
  3.2 静态helloworld:
  3.2.1 代码:import vtk  # Create a text actor. txt = vtk.vtkTextActor() txt.SetInput("Hello World") #不支持中文 txtprop = txt.GetTextProperty() txtprop.SetFontFamilyToArial() txtprop.BoldOn() #字体大小设置 txtprop.SetFontSize(36) txtprop.ShadowOn() txtprop.SetShadowOffset(4, 4) #文本显示坐标,默认0,0==左下角 #注意300,300是指离左下角0,0的300,300的距离坐标,是固定不变的 #不会随着窗口变大而改变 txt.SetDisplayPosition(300, 300) # 绘制器 ren = vtk.vtkRenderer() # 负责管理场景的渲染过程 #注意颜色定义类似opengl的 ren.SetBackground(0.1, 0.2, 0.4)  #在这里设置背景颜色:蓝色 # 绘制器添加演员 ren.AddActor(txt) # 绘制窗口 renWin = vtk.vtkRenderWindow() # 窗口标题名 renWin.SetWindowName("Hello World")  #不支持中文 # 窗口大小 renWin.SetSize(800, 800) # 设置窗口位置:默认0,0==左上角 renWin.SetPosition(600, 20)  #尽量居中 # 绘制窗口添加绘制器 renWin.AddRenderer(ren) # 创建窗口交互器 iren = vtk.vtkRenderWindowInteractor() iren.SetRenderWindow(renWin) iren.Initialize() # 窗口读取绘制器生成的图形 iren.Start()
  3.2.2 图:
  3.3 动态Hello world:
  3.3.1 代码:import vtk #启动文字源码框架,内置的 textSource = vtk.vtkTextSource() textSource.SetText("Hello World") #设置显示文字 textSource.SetForegroundColor(1.0, 0.0, 0.0)  #字体颜色为红色 textSource.BackingOn() textSource.Update() #Create a mapper and actor mapper = vtk.vtkPolyDataMapper() mapper.SetInputConnection(textSource.GetOutputPort()) #和actor执行动作 actor = vtk.vtkActor() actor.SetMapper(mapper) # 绘制器 ren = vtk.vtkRenderer() # 负责管理场景的渲染过程 #注意颜色定义类似opengl的 ren.SetBackground(0.1, 0.2, 0.4)  #在这里设置背景颜色:蓝色 # 绘制器添加actor,虽然有"演员"的意思,这里指执行单元或者内容 ren.AddActor(actor)   # 绘制窗口 renWin = vtk.vtkRenderWindow() # 窗口标题名 renWin.SetWindowName("Hello world")  #不支持中文 # 窗口大小 renWin.SetSize(800, 800) # 设置窗口位置:默认0,0==左上角 renWin.SetPosition(600, 20)  #尽量居中 # 绘制窗口添加绘制器 renWin.AddRenderer(ren) # 创建窗口交互器 iren = vtk.vtkRenderWindowInteractor() iren.SetRenderWindow(renWin) iren.Initialize() # 窗口读取绘制器生成的图形 iren.Start()
  3.3.2 效果图:
  4 官方3D图:
  =========
  4.1 arrow=箭头
  4.1.1 代码:import vtk #---add------------ #自带箭头源 arrow_source = vtk.vtkArrowSource() # 映射器 mapper = vtk.vtkPolyDataMapper() # 映射器添加数据源 mapper.SetInputConnection(arrow_source.GetOutputPort()) # 实例化执行单元 actor = vtk.vtkActor() # 执行单元添加映射器 actor.SetMapper(mapper) #---add------------- # 绘制器 ren = vtk.vtkRenderer() # 负责管理场景的渲染过程 #注意颜色定义类似opengl的 ren.SetBackground(0.1, 0.2, 0.4)  #在这里设置背景颜色:蓝色 # 绘制器添加执行单元 ren.AddActor(actor)  #---add---------- # 绘制窗口 renWin = vtk.vtkRenderWindow() # 窗口标题名 renWin.SetWindowName("arrow")  #不支持中文 # 窗口大小 renWin.SetSize(800, 800) # 设置窗口位置:默认0,0==左上角 renWin.SetPosition(600, 20)  #尽量居中 # 绘制窗口添加绘制器 renWin.AddRenderer(ren) # 创建窗口交互器 iren = vtk.vtkRenderWindowInteractor() iren.SetRenderWindow(renWin) iren.Initialize() # 窗口读取绘制器生成的图形 iren.Start()
  4.1.2 效果图
  4.2 cylinder=圆柱体:
  4.2.1 代码:import vtk #定义主函数 def main():     #加载自带,实例化cylinder     cylinder_source = vtk.vtkCylinderSource()     #不设置,就是默认的高和半径     #cylinder_source.SetHeight(3.0) # 设置柱体的高     #cylinder_source.SetRadius(1.0) #  设置柱体横截面的半径     cylinder_source.SetResolution(8)  #8条边,特点     #映射器     mapper = vtk.vtkPolyDataMapper()     # 映射器添加数据源     mapper.SetInputConnection(cylinder_source.GetOutputPort())     # 实例化执行单元     actor = vtk.vtkActor()     # 执行单元添加映射器     actor.SetMapper(mapper)          #cylinder特点     actor.RotateX(30.0)     actor.RotateY(-45.0)     # 绘制器     ren = vtk.vtkRenderer() # 负责管理场景的渲染过程     #注意颜色定义类似opengl的     ren.SetBackground(0.1, 0.2, 0.4)  #在这里设置背景颜色:蓝色     # 绘制器添加动作     ren.AddActor(actor)      # 绘制窗口     renWin = vtk.vtkRenderWindow()     # 窗口标题名     renWin.SetWindowName("cylinder")  #不支持中文     # 窗口大小     renWin.SetSize(800, 800)     # 设置窗口位置:默认0,0==左上角     renWin.SetPosition(600, 20)  #尽量居中     # 绘制窗口添加绘制器     renWin.AddRenderer(ren)     # 创建窗口交互器     iren = vtk.vtkRenderWindowInteractor()     iren.SetRenderWindow(renWin)     iren.Initialize()     # 窗口读取绘制器生成的图形     iren.Start()  if __name__ == "__main__":     main()
  4.2.2 效果图:
  4.3 cube=正方体:
  4.3.1 代码:import vtk #---在arrow代码基础上修改:改变处:arrow变cube------------ # 读取数据 cube_source = vtk.vtkCubeSource() cube_source.Update()#记得加这句不加看不到模型,不同处 # 建图(将点拼接成立方体) mapper = vtk.vtkPolyDataMapper() mapper.SetInputData(cube_source.GetOutput()) #因为update,所以选择这个 #mapper.SetInputData(cube_source.GetOutputPort())  #报错,不同处  # 根据创建执行单元 actor = vtk.vtkActor() actor.SetMapper(mapper) #这是cube=正方体表面颜色:红色1.0, 0.0, 0.0 actor.GetProperty().SetColor(0.1, 0.2, 0.4) #蓝色 #---改变处:arrow变cube------------- # 绘制器 ren = vtk.vtkRenderer() # 负责管理场景的渲染过程 #注意颜色定义类似opengl的 ren.SetBackground(0.0, 0.0, 0.0)  #在这里设置背景颜色:黑色 # 绘制器添加执行单元 ren.AddActor(actor)  # 绘制窗口 renWin = vtk.vtkRenderWindow() # 窗口标题名 renWin.SetWindowName("cube")  #不支持中文 # 窗口大小 renWin.SetSize(1600, 1200) # 设置窗口位置:默认0,0==左上角 renWin.SetPosition(300, 20)  #尽量居中 # 绘制窗口添加绘制器 renWin.AddRenderer(ren) # 创建窗口交互器 iren = vtk.vtkRenderWindowInteractor() iren.SetRenderWindow(renWin) iren.Initialize() # 窗口读取绘制器生成的图形 iren.Start()
  4.3.2 效果图:
  4.4 cone=圆锥体:
  4.4.1 代码:import vtk #---在arrow代码基础上修改--- #改动1:仅仅:改arrow为cone cone_source=vtk.vtkConeSource()  # 映射器 mapper = vtk.vtkPolyDataMapper() # 映射器添加数据源 mapper.SetInputConnection(cone_source.GetOutputPort()) #改动2:仅仅改arrow为cone # 实例化actor=执行单元 actor = vtk.vtkActor() # 执行单元添加映射器 actor.SetMapper(mapper) #---add------------- # 绘制器 ren = vtk.vtkRenderer() # 负责管理场景的渲染过程 #注意颜色定义类似opengl的 ren.SetBackground(0.1, 0.2, 0.4)  #在这里设置背景颜色:蓝色 # 绘制器添加执行单元 ren.AddActor(actor)  #---add---------- # 绘制窗口 renWin = vtk.vtkRenderWindow() # 窗口标题名 renWin.SetWindowName("cone")  #不支持中文,改动3:仅仅:改arrow为cone # 窗口大小 renWin.SetSize(800, 800) # 设置窗口位置:默认0,0==左上角 renWin.SetPosition(600, 20)  #尽量居中 # 绘制窗口添加绘制器 renWin.AddRenderer(ren) # 创建窗口交互器 iren = vtk.vtkRenderWindowInteractor() iren.SetRenderWindow(renWin) iren.Initialize() # 窗口读取绘制器生成的图形 iren.Start()
  4.4.2 效果图:
  4.5 disk=碟:
  4.5.1 特点:颜色设置的另外一种方法,与上面的数字法不同。
  4.5.2 代码:import vtk  def main():     #调出颜色设置,实例化     colors = vtk.vtkNamedColors()     #调出disk设置,实例化,自带     diskSource = vtk.vtkDiskSource()     # Create a mapper and actor.     mapper = vtk.vtkPolyDataMapper()     mapper.SetInputConnection(diskSource.GetOutputPort())         actor = vtk.vtkActor()     #设置disk碟的actor执行单元的颜色     actor.GetProperty().SetColor(colors.GetColor3d("Cornsilk"))     actor.SetMapper(mapper)     # 绘制器     ren = vtk.vtkRenderer() # 负责管理场景的渲染过程     #注意颜色定义类似opengl的数字法     #ren.SetBackground(0.1, 0.2, 0.4)  #在这里设置背景颜色:蓝色     #vtk自身的颜色设置法     ren.SetBackground(colors.GetColor3d("DarkGreen"))     # 绘制器添加执行单元     ren.AddActor(actor)      # 绘制窗口     renWin = vtk.vtkRenderWindow()     # 窗口标题名     renWin.SetWindowName("disk")  #不支持中文,改动3:仅仅:改arrow为disk     # 窗口大小     renWin.SetSize(800, 800)     # 设置窗口位置:默认0,0==左上角     renWin.SetPosition(600, 20)  #尽量居中     # 绘制窗口添加绘制器     renWin.AddRenderer(ren)     # 创建窗口交互器     iren = vtk.vtkRenderWindowInteractor()     iren.SetRenderWindow(renWin)     iren.Initialize()     # 窗口读取绘制器生成的图形     iren.Start()  if __name__ == "__main__":     main()
  4.5.3 效果图:
  4.6 sphere=球体:
  4.6.1 代码:import vtk #自带,sphere=球体,实例化调出 sphere_source = vtk.vtkSphereSource() sphere_source.SetCenter(0, 0, 0) sphere_source.SetRadius(5.0) # 映射器 mapper = vtk.vtkPolyDataMapper() # 映射器添加数据源 mapper.SetInputConnection(sphere_source.GetOutputPort()) # 实例化执行单元 actor = vtk.vtkActor() # 执行单元添加映射器 actor.SetMapper(mapper) # 绘制器 ren = vtk.vtkRenderer() # 负责管理场景的渲染过程 #注意颜色定义类似opengl的 ren.SetBackground(0.1, 0.2, 0.4)  #在这里设置背景颜色:蓝色 # 绘制器添加执行单元 ren.AddActor(actor)   # 绘制窗口 renWin = vtk.vtkRenderWindow() # 窗口标题名 renWin.SetWindowName("sphere")  #不支持中文 # 窗口大小 renWin.SetSize(800, 800) # 设置窗口位置:默认0,0==左上角 renWin.SetPosition(600, 20)  #尽量居中 # 绘制窗口添加绘制器 renWin.AddRenderer(ren) # 创建窗口交互器 iren = vtk.vtkRenderWindowInteractor() iren.SetRenderWindow(renWin) iren.Initialize() # 窗口读取绘制器生成的图形 iren.Start()
  4.6.2 效果图:
  ===自己整理并分享出来===
  喜欢的就点赞、关注、评论、转发和收藏。

暑假耐心已耗尽,让孩子听话不作妖,就得这么办七月悄悄地过去了,孩子放暑假在家也已经半个多月了,久违的一家三口四口五口美好的生活开启(不是实际上,每一次假期都是对父母的一次考验,假期刚开始,我们兴致勃勃地为孩子规划学习兴趣班,很多父母都不知道自己常做的这4件事,破坏了孩子的专注力专注力一直是各位爸爸妈妈在育儿问题上关注的重点。我们通常会认为一个人的专注力是天生的,因此也就有了,上学时认真的学生和总开小差的学生。所以,家长都想先下手为强,想法设法在孩童时期就全母乳喂养,如何判断宝宝是否吃饱了?育婴师4大关键点要记牢相信对于每一个小宝宝的出生,都是凝聚着爸妈以及全家人的期待和爱而来的。对于小婴儿来说,最好的食物就是母乳喂养了。而母乳喂养的好处自不必说,应该很多人都已经知道了。但还是有不少新手妈11岁女孩身高165cm,医生这些习惯很不错,值得爸妈们借鉴育德小学的佳心今年才11岁,身高就已经达到165cm了,是班级里为数不多的大高个,并且佳心的体质特别好,在别家孩子三天两头往医院跑的时候,佳心还健健康康开开心心的。上次学校开了家长别再埋怨孩子专注力差,爸妈避开3种错误育儿观,提高孩子专注力最近一些家长谈到孩子学习,就显得怨声载道的样子。从她们的口气中,埋怨得最多的就是孩子的专注力差,注意力不集中。的确,孩子专注力差对于学习来说,还真是一个大问题。就像东东妈诉说的那样张文宏早餐不要喝粥!孩子身体好能长高,这些关键点要早知道近日,张文宏医生发布的一份关于孩子的早餐建议,引发了网友们的热议。张文宏医生说无论孩子胖瘦,饮食爱好如何,早餐一定不要喝粥,要多吃高营养高蛋白食物,多吃鸡蛋牛奶三明治等,吃了再让孩高考数学很难?快乐星球马嘉祺25分,专家90后家长注意这点6月初,高考数学的考试一结束,高考数学立刻在微博爆了。就在前几天,高考成绩揭榜,时代少年团组合的队长马嘉祺高考数学成绩引起广大网友热议,参加了河南省高考的他,总分有307分,而数学我的离婚成全了丈夫和小三,我后悔了痛苦了五年,我终于选择离开,什么都不带走,净身出户,儿子由他抚养。我们也有过甜蜜的热恋期,那会儿我们都还在国外念书,利用假期和学生签证的便利去了很多地方,两人一起共同渡过很多难忘的新版儿童身高标准出炉,5岁男孩起码111cm,家长们来了解一下随着人们生活水平的提高,大家除了吃饱穿暖以外,孩子的身高也成了很多父母关注的焦点。说实话,当今社会,相对个子矮的孩子而言,高个子优势还是要更多些,但在我们的周围,很多父母对自家孩子入秋后,爸妈带娃请牢记3暖1凉原则,让孩子身体好生病少云天收夏色,木叶动秋声。随着时间的慢慢推移,不知不觉我们辞别了炎热的夏天,已经迎来了立秋。立秋以后,我们能明显感受到的应该就是气温的变化了。秋天,没有了夏季令人焦躁的燥热,随之而来3种睡姿影响孩子一生!宝妈及时帮忙纠正,孩子身体棒棒智力高养育人类幼崽,或许是许多宝妈既甜蜜又心累的事情。累,相信每个做了妈妈的人都深有感受,但累并幸福着也是每个做妈妈的感受。在宝宝清醒的时候需要照顾,在宝宝进入了香甜的睡眠时,宝妈们也不
防不胜防的微笑抑郁症,什么样的孩子需要父母格外关注?我在头条问答上回答过比较多的有关抑郁症的问题。今天我想讲一个抑郁症的特例,就是微笑抑郁症,这种症状的人一般不易被人发现,因为我们常人想像得了抑郁症的人都是像红楼梦中的林妹妹多愁善感一支无痛针引发家庭内部矛盾,如何科学理智看待分娩镇痛?分娩镇痛也叫无痛分娩,临床上是用少量的药物(局部麻醉药或者镇痛药)和一种叫椎管内麻醉的技术,达到缓解分娩疼痛的效果。整个过程中可以让准妈妈保持意识清醒和用力,方便配合分娩,因此过程近期出现较多孩子轻生的情况,父母应该如何做孩子心理健康教育?很多人表示不理解,这一代的孩子,什么苦都没吃过,生活条件那么好,竟然会想不开?我们那个年代,还有上一代那么辛苦,都没有人感觉活不下去?为什么有些孩子连死都不怕,却害怕活着?是什么原哪个父母更幸福?孩子普通留在身边,孩子优秀远离父母?冷暖自知,谁苦谁知道!祈祷祈祷祈祷说句实在话,还是前者幸福感,,在身边的更幸福,因为天天都能看到孩子,不至于想还得打电话。孩子有出息(读书或创业),孩子能自理,不纠缠父母,这样的父跳过恋爱结婚怀孕,33岁女总裁无偶式育儿爆火前段时间观察到一个现象。几乎在每个社交平台晒娃的图片或视频下,都会有这样一条评论如何跳过恋爱结婚,直接拥有这样一个可爱的小孩?不想结婚,想生娃似乎是很多女生梦寐以求的状态。而在千万孩子每天早上都磨磨蹭蹭的,家长是又气又急啊情景每天从早上起床开始,家长喊拖拉拽,孩子还能闭着眼睛,缩在被窝里动都不动。说的最多的一句话就是你能不能快点儿,迟到了!好不容易起来了,去洗脸刷牙,等了十分钟孩子没出来,家长急了进当我也成为妈妈,想跟孩子发脾气时今天是母亲节,昨晚看到新闻说外卖平台数据显示,母亲节鲜花预定量首次反超情人节,是情人节的六倍,真是令当妈妈的我感到欣慰。当然也有可能还有情人节当时疫情的影响。母亲节快乐尽管今天是这什么是给孩子最好的教育?90后已经慢慢得从人子过渡到了人父人母,从小到大耳濡目染的是各种各样的父母,给自己孩子去编排父母自己觉得满意的人生。会给孩子报各式各样的补习班兴趣班,说是让孩子赢在起跑线上,那到底过敏季,我们该如何保护孩子和自己?点击右上角加关注,全国产经信息不错过春季,万物复苏,草木发芽。然而,花粉扬尘风沙雾霾等等都可能是孩子过敏症状急性发作或反复的导火索。过敏季,如何保护孩子和自己?一起来听听国家儿童医孩子元宵汤圆吃多了这样做可以消积食广州日报讯(全媒体记者周洁莹通讯员宋莉萍)今天是元宵节,又到合家吃汤圆的时候。那么,孩子吃元宵有哪些需要注意的呢?吃汤圆吃多了该怎么处理?广东省中医药吴大嵘主任中医师来给大家支招。是否问过自己,我为什么对孩子大吼大叫?家庭教育不吼不叫知序丨家庭教育带您深度自省觉察接纳重塑完善拥抱良性亲子关系,收获新时代幸福感努力改变自己,给孩子更好的父母吼叫背后的真正动机,是对自己的教育方式感到无力并认同屏幕前经常对孩子吼叫的