当前位置: 首页 > news >正文

中国军队建设网站云南网络推广服务

中国军队建设网站,云南网络推广服务,wordpress post class,河南做网站前言: 本文主要介绍了如何使用Python VTK高亮显示actor,使用Python语言,高亮显示选中的actor。当窗口中的圆球actor被选中时,会变成红色,并且会显示actor三遍面片边缘信息。 效果: VTK VTK,&…

前言:

    本文主要介绍了如何使用Python VTK高亮显示actor,使用Python语言,高亮显示选中的actor。当窗口中的圆球actor被选中时,会变成红色,并且会显示actor三遍面片边缘信息。

效果:

 VTK

      VTK,(visualizationtoolkit)是一个开放资源的免费软件系统,主要用于三维计算机图形学、图像处理和可视化。Vtk是在面向对象原理的基础上设计和实现的,它的内核是用C++构建。

主要函数介绍:

NewPickedActor.GetProperty(): 

通过该函数,可以设置actor的性质,如颜色、表面样式等。

vtk.vtkSphereSource(): 

创建球体的函数,文中通过一个for循环创建了6个球体。

vtk.vtkMinimalStandardRandomSequence():

 VTK的随机数生成器,用于代码中的球体,随机生成球体的大小和位置。

MouseInteractorHighLightActor: 

定义actor操作方法,这个是一个鼠标操作控件的控制方法。

leftButtonPressEvent(self, obj, event): 

这是一个事件触发函数,当鼠标左键点击对应的actor时,会触发函数,对点的actor高亮显示。

Code:

#!/usr/bin/env python# noinspection PyUnresolvedReferences
import vtkcolors = vtk.vtkNamedColors()
NUMBER_OF_SPHERES = 6class MouseInteractorHighLightActor(vtk.vtkInteractorStyleTrackballCamera):def __init__(self, parent=None):self.AddObserver("LeftButtonPressEvent", self.leftButtonPressEvent)self.LastPickedActor = Noneself.LastPickedProperty = vtk.vtkProperty()def leftButtonPressEvent(self, obj, event):clickPos = self.GetInteractor().GetEventPosition()picker = vtk.vtkPropPicker()picker.Pick(clickPos[0], clickPos[1], 0, self.GetDefaultRenderer())# 创建一个新的actorself.NewPickedActor = picker.GetActor()# If something was selectedif self.NewPickedActor:# If we picked something before, reset its propertyif self.LastPickedActor:self.LastPickedActor.GetProperty().DeepCopy(self.LastPickedProperty)if self.LastPickedActor == self.NewPickedActor:self.NewPickedActor.GetProperty().DeepCopy(self.LastPickedProperty)self.LastPickedActor=Noneelse:# Save the property of the picked actor so that we can# restore it next timeself.LastPickedProperty.DeepCopy(self.NewPickedActor.GetProperty())# 高亮选中球体,并显示边缘self.NewPickedActor.GetProperty().SetColor(colors.GetColor3d('Red'))self.NewPickedActor.GetProperty().SetDiffuse(1.0)self.NewPickedActor.GetProperty().SetSpecular(0.0)self.NewPickedActor.GetProperty().EdgeVisibilityOn()# 保存最后一个选中的actorself.LastPickedActor = self.NewPickedActorself.OnLeftButtonDown()returndef main():# 创建render和windowrenderer = vtk.vtkRenderer()renderer.SetBackground(colors.GetColor3d('SteelBlue'))renwin = vtk.vtkRenderWindow()renwin.AddRenderer(renderer)renwin.SetSize(640, 600)renwin.SetWindowName('HighlightPickedActor')# 建立interactor(交互操作)interactor = vtk.vtkRenderWindowInteractor()interactor.SetRenderWindow(renwin)# 交互操作方法style = MouseInteractorHighLightActor()style.SetDefaultRenderer(renderer)interactor.SetInteractorStyle(style)randomSequence = vtk.vtkMinimalStandardRandomSequence()randomSequence.SetSeed(8775070)# 添加球体for i in range(NUMBER_OF_SPHERES):source = vtk.vtkSphereSource()# random position and radiusx = randomSequence.GetRangeValue(-5.0, 5.0)randomSequence.Next()y = randomSequence.GetRangeValue(-5.0, 5.0)randomSequence.Next()z = randomSequence.GetRangeValue(-5.0, 5.0)randomSequence.Next()radius = randomSequence.GetRangeValue(0.5, 1.0)randomSequence.Next()source.SetRadius(radius)source.SetCenter(x, y, z)source.SetPhiResolution(11)source.SetThetaResolution(21)mapper = vtk.vtkPolyDataMapper()mapper.SetInputConnection(source.GetOutputPort())actor = vtk.vtkActor()actor.SetMapper(mapper)r = randomSequence.GetRangeValue(0.4, 1.0)randomSequence.Next()g = randomSequence.GetRangeValue(0.1, 1.0)randomSequence.Next()b = randomSequence.GetRangeValue(0.6, 1.0)randomSequence.Next()actor.GetProperty().SetDiffuseColor(r, g, b)actor.GetProperty().SetDiffuse(.8)actor.GetProperty().SetSpecular(.5)actor.GetProperty().SetSpecularColor(colors.GetColor3d('White'))actor.GetProperty().SetSpecularPower(10.0)renderer.AddActor(actor)# 运行interactor.Initialize()renwin.Render()interactor.Start()if __name__ == '__main__':main()

http://www.ritt.cn/news/9375.html

相关文章:

  • 做百度糯米网站的团队宁波seo网络推广咨询热线
  • 网站交互怎么做的惠州大亚湾经济技术开发区
  • 创建wordpress插件晋城seo
  • 中国建设网官方网站客服电话企业qq多少钱一年
  • 从零学习做网站淘宝店铺运营
  • 北京做企业网站的公司网络营销的含义
  • 网站引导页设计策划网络营销方案
  • 阿坝州网站制作网站搜索引擎优化方案的案例
  • 官方网站下载派的app搜索大全引擎地址
  • PHP网站开发简单实例深圳网站seo优化
  • 汉中网站建设价格山西seo和网络推广
  • 北京 网站建设|小程序|软件开发|app开发公司好用的种子搜索引擎
  • 电商设计助理工作内容广东搜索引擎优化
  • 企业网站开发合同seo关键词排名优化价格
  • 山西太原小店区疫情详细描述如何进行搜索引擎的优化
  • 网站建设html5源码百度推广代理公司广州
  • 公司企业形象设计温州seo服务
  • WordPress阿里云安装seo排名优化推广
  • 网络广告文案范文长沙专业seo优化公司
  • 视频网站的链接怎么做活动软文模板
  • 中学生做的网站有哪些方面阿里指数在哪里看
  • wordpress搜索功能性能百度优化培训
  • 导购网站如何做免费推广绍兴seo
  • 安徽两学一做专题网站sem是什么?
  • 做彩票网站模板谷歌seo怎么做
  • 做公司网站需要凡科建站小程序
  • 江苏省建设工程上岗证查询网站南宁网站推广哪家好
  • wordpress旧版本下载公众号排名优化软件
  • 新手学做网站的书广州网站快速优化排名
  • 重庆奉节网站建设公司推荐百度识图在线网页版