返回顶部
首页 > 资讯 > 后端开发 > Python >怎么使用Python VTK高亮显示actor
  • 225
分享到

怎么使用Python VTK高亮显示actor

2023-06-30 04:06:04 225人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

今天小编给大家分享一下怎么使用python VTK高亮显示actor的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

今天小编给大家分享一下怎么使用python VTK高亮显示actor的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

前言:

VTK,(visualizationtoolkit)是一个开放资源的免费软件系统,主要用于三维计算机图形学、图像处理和可视化。Vtk是在面向对象原理的基础上设计和实现的,它的内核是用c++构建的,包含有大约250,000行代码,2000多个类,还包含有几个转换界面,因此也可以自由的通过Java,Tcl/Tk和Python各种语言使用vtk。

主要函数介绍:

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

vtk.vtkSphereSource(): 创建球体的函数,文中通过一个for循环创建了10个球体。

vtk.vtkMinimalStandardRandomSequence(): VTK的随机数生成器,用于代码中的十个球体,随机生成球体的大小和位置。

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

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

主要代码如下:

#!/usr/bin/env python# noinspection PyUnresolvedReferencesimport vtkcolors = vtk.vtkNamedColors()NUMBER_OF_SPHERES = 10class MouseInteractorHighLightActor(vtk.vtkInteractorStyleTrackballCamera):    def __init__(self, parent=None):        self.AddObserver("LeftButtonPressEvent", self.leftButtonPressEvent)        self.LastPickedActor = None        self.LastPickedProperty = vtk.vtkProperty()    def leftButtonPressEvent(self, obj, event):        clickPos = self.GetInteractor().GetEventPosition()        picker = vtk.vtkPropPicker()        picker.Pick(clickPos[0], clickPos[1], 0, self.GetDefaultRenderer())        # 创建一个新的actor        self.NewPickedActor = picker.GetActor()        # If something was selected        if self.NewPickedActor:            # If we picked something before, reset its property            if self.LastPickedActor:                self.LastPickedActor.GetProperty().DeepCopy(self.LastPickedProperty)            # Save the property of the picked actor so that we can            # restore it next time            self.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()            # 保存最后一个选中的actor            self.LastPickedActor = self.NewPickedActor        self.OnLeftButtonDown()        returndef main():    # 创建render和window    renderer = vtk.vtkRenderer()    renderer.SetBackground(colors.GetColor3d('SteelBlue'))    renwin = vtk.vtkRenderWindow()    renwin.AddRenderer(renderer)    renwin.SetSize(640, 480)    renwin.SetWindowName('HighlightPickedActor')    # 建立interactor(交互操作)    interactor = vtk.vtkRenderWindowInteractor()    interactor.SetRenderWindow(renwin)    # 交互操作方法    style = MouseInteractorHighLightActor()    style.SetDefaultRenderer(renderer)    interactor.SetInteractorStyle(style)    randomSequence = vtk.vtkMinimalStandardRandomSequence()    # randomSequence.SetSeed(1043618065)    # randomSequence.SetSeed(5170)    randomSequence.SetSeed(8775070)    # 添加球体    for i in range(NUMBER_OF_SPHERES):        source = vtk.vtkSphereSource()        # random position and radius        x = 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.4, 1.0)        randomSequence.Next()        b = randomSequence.GetRangeValue(0.4, 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(30.0)        renderer.AddActor(actor)    # 运行    interactor.Initialize()    renwin.Render()    interactor.Start()if __name__ == '__main__':    main()

显示结果如下: 未选择球体: 

怎么使用Python VTK高亮显示actor

已选取球体后: 

怎么使用Python VTK高亮显示actor

以上就是“怎么使用Python VTK高亮显示actor”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网Python频道。

--结束END--

本文标题: 怎么使用Python VTK高亮显示actor

本文链接: https://lsjlt.com/news/327423.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 怎么使用Python VTK高亮显示actor
    今天小编给大家分享一下怎么使用Python VTK高亮显示actor的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。...
    99+
    2023-06-30
  • 如何使用Python VTK高亮显示actor
    前言: VTK,(visualizationtoolkit)是一个开放资源的免费软件系统,主要用于三维计算机图形学、图像处理和可视化。Vtk是在面向对象原理的基础上设计和实现的,它的...
    99+
    2024-04-02
  • VScode 中 Python 代码不高亮显示怎么办?
    最近在用 VScode 写代码的时候,发现 Python 代码不高亮显示: 这样用起来体验感不好,网上查询资料,可能存在的原因为: 安装Python扩展: 确保你已经安装了VS Code的Pytho...
    99+
    2023-10-23
    VScode 高亮 代码 Python Pylance 原力计划
  • Android中怎么利用TextView显示部分文字高亮
    这篇文章将为大家详细讲解有关Android中怎么利用TextView显示部分文字高亮,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Android  TextView中部分文字高亮显...
    99+
    2023-05-31
    android textview
  • 怎么使用Python VTK绘制线条
    本文小编为大家详细介绍“怎么使用Python VTK绘制线条”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么使用Python VTK绘制线条”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。主...
    99+
    2023-06-30
  • Qt 5.9使用VTK显示点云的详解详解
    注意: 1.以下第一部分PCL安装使用教程可供参考,第二部分在VS中使用Qt亲测有效;第三第四部分有问题,希望通过这个教程了解如何使用Qt可视化点云的可能要失望了,如果你实现了还请不...
    99+
    2024-04-02
  • Footerbar区域按钮的高亮显示怎么实现
    本篇内容主要讲解“Footerbar区域按钮的高亮显示怎么实现”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Footerbar区域按钮的高亮显示怎么实现”吧!还是借助Chrome Develop...
    99+
    2023-06-04
  • windows11显示亮度怎么调节
    这篇文章主要讲解了“windows11显示亮度怎么调节”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“windows11显示亮度怎么调节”吧!windows11显示亮度调节方法:方法一: 首先...
    99+
    2023-07-01
  • Python-VTK怎么批量读取二维切片并显示三维模型
    这篇文章主要介绍“Python-VTK怎么批量读取二维切片并显示三维模型”,在日常操作中,相信很多人在Python-VTK怎么批量读取二维切片并显示三维模型问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Pyt...
    99+
    2023-06-30
  • 怎么使用Python VTK完成图像切割
    这篇文章主要介绍“怎么使用Python VTK完成图像切割”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么使用Python VTK完成图像切割”文章能帮助大家解决问题。1、读取...
    99+
    2023-06-30
  • win7显示器亮度怎么更改
    这篇文章主要介绍“win7显示器亮度怎么更改”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“win7显示器亮度怎么更改”文章能帮助大家解决问题。win7显示器亮度更改教程很多品牌的显示器都会在边缘有对...
    99+
    2023-07-01
  • win7显示器不亮怎么解决
    本篇内容介绍了“win7显示器不亮怎么解决”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!win7显示器不亮解决办法:(首先已经确定了主机正常...
    99+
    2023-07-01
  • ABAP的语法高亮是怎么在浏览器里显示的
    本篇内容介绍了“ABAP的语法高亮是怎么在浏览器里显示的”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在S/4HANA里,我们现在能在浏览器...
    99+
    2023-06-04
  • 电脑显示器不亮怎么解决
    如果电脑显示器不亮,可能是以下原因导致的:1. 电源问题:检查显示器是否连接到电源插座,并确保电源开关打开。2. 电缆连接问题:检查...
    99+
    2023-09-07
    电脑
  • 电脑显示器亮度怎么调节
    本篇内容主要讲解“电脑显示器亮度怎么调节”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“电脑显示器亮度怎么调节”吧!电脑显示器亮度调节的方法打开电脑桌面上的“计算机”,双击打开进入。 如图所示,点...
    99+
    2023-07-01
  • Vue中使用highlight.js实现代码高亮显示以及点击复制
    目录效果如下第一步 安装highlight.js第二步 在main.js中引入第三步 创建组件效果如图:点击显示代码第四步: 使用组件第五步 实现点击复制代码clipboard.js...
    99+
    2024-04-02
  • Win7显示器亮度怎么调?Win7显示器色度设定
    很多使用Win7系统软件的用户还不知道如何正确调整显示器的色彩设置,这导致他们在日常电脑操作中经常遇到问题。那下边小编就给各位产生Win7显示器色度的实际调整方式。碰到一样问题的客户快看来一下吧。屏幕亮度调节方式:点一下桌面上左下方的开始按...
    99+
    2023-07-16
  • Atom中怎么配置小程序文件让代码高亮显示
    这篇文章主要介绍Atom中怎么配置小程序文件让代码高亮显示,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!小程序相关的文件后缀名是 .wxml, .wxss, .wxs ,可是 Atom 编辑器默认不会自动识别这些类型...
    99+
    2023-06-15
  • 怎么把SAP CRM WebClient UI上某个字段高亮加粗显示
    怎么把SAP CRM WebClient UI上某个字段高亮加粗显示,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。如果你仅仅想把UI上某一个field的字体增大,可以做,但...
    99+
    2023-06-04
  • highlight.js代码高亮插件怎么使用
    这篇文章主要介绍“highlight.js代码高亮插件怎么使用”,在日常操作中,相信很多人在highlight.js代码高亮插件怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”highlight.js代...
    99+
    2023-06-26
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作