CubeAxesActor 为几何体添加边框和坐标轴

一:主要的知识点

1、说明

本文只是教程内容的一小段,因博客字数限制,故进行拆分。主教程链接:vtk教程——逐行解析官网所有Python示例-CSDN博客

2、知识点纪要

本段代码主要涉及的有①vtkCubeAxesActor立方体坐标轴


二:代码及注释

import vtkmodules.vtkRenderingOpenGL2 import vtkmodules.vtkInteractionStyle from vtkmodules.vtkFiltersSources import vtkSuperquadricSource from vtkmodules.vtkRenderingAnnotation import vtkCubeAxesActor from vtkmodules.vtkCommonColor import vtkNamedColors from vtkmodules.vtkRenderingCore import ( vtkActor, vtkPolyDataMapper, vtkRenderWindow, vtkRenderWindowInteractor, vtkRenderer ) def main(): colors = vtkNamedColors() backgroundColor = colors.GetColor3d("DarkSlateGray") actorColor = colors.GetColor3d("Tomato") axis1Color = colors.GetColor3d("Salmon") axis2Color = colors.GetColor3d("PaleGreen") axis3Color = colors.GetColor3d("LightSkyBlue") superquadricSource = vtkSuperquadricSource() superquadricSource.SetPhiRoundness(3.1) superquadricSource.SetThetaRoundness(1.0) superquadricSource.Update() # needed to GetBounds later renderer = vtkRenderer() mapper = vtkPolyDataMapper() mapper.SetInputConnection(superquadricSource.GetOutputPort()) superquadricActor = vtkActor() superquadricActor.SetMapper(mapper) superquadricActor.GetProperty().SetDiffuseColor(actorColor) superquadricActor.GetProperty().SetDiffuse(.7) superquadricActor.GetProperty().SetSpecular(.7) superquadricActor.GetProperty().SetSpecularPower(50.0) """ vtkCubeAxesActor 在三维场景中绘制立方体坐标轴(带刻度、标签、标题),帮助用户理解模型的空间范围和方向 """ cubeAxesActor = vtkCubeAxesActor() cubeAxesActor.SetUseTextActor3D(1) # 使用3D文本,确保刻度标签使用3D文本 Actor 渲染,以便它们在3D空间中正确旋转和缩放 cubeAxesActor.SetBounds(superquadricSource.GetOutput().GetBounds()) cubeAxesActor.SetCamera(renderer.GetActiveCamera()) # 确保坐标轴始终围绕相机进行调整,即使相机移动,轴线框看起来仍然像是正确的3D边界 cubeAxesActor.GetTitleTextProperty(0).SetColor(axis1Color) cubeAxesActor.GetTitleTextProperty(0).SetFontSize(18) cubeAxesActor.GetLabelTextProperty(0).SetColor(axis1Color) cubeAxesActor.DrawXGridlinesOn() # 刻画刻度线 cubeAxesActor.XAxisMinorTickVisibilityOff() # 禁用X坐标轴上的次要刻度线的显示 cubeAxesActor.GetTitleTextProperty(1).SetColor(axis2Color) cubeAxesActor.GetTitleTextProperty(1).SetFontSize(18) cubeAxesActor.GetLabelTextProperty(1).SetColor(axis2Color) cubeAxesActor.DrawYGridlinesOn() cubeAxesActor.YAxisMinorTickVisibilityOff() cubeAxesActor.GetTitleTextProperty(2).SetColor(axis3Color) cubeAxesActor.GetTitleTextProperty(2).SetFontSize(18) cubeAxesActor.GetLabelTextProperty(2).SetColor(axis3Color) cubeAxesActor.DrawZGridlinesOn() cubeAxesActor.ZAxisMinorTickVisibilityOff() cubeAxesActor.SetGridLineLocation(cubeAxesActor.VTK_GRID_LINES_FURTHEST) # 设置网格线位置,这里是设置网格线位于立方体轴线框最远端 cubeAxesActor.SetFlyModeToStaticEdges() # 稳定边缘,确保坐标轴标签和刻度保持稳定,即使相机移动,轴线也不会“乱飞”或突然切换位置 renderer.AddActor(cubeAxesActor) renderer.AddActor(superquadricActor) renderer.GetActiveCamera().Azimuth(30) renderer.GetActiveCamera().Elevation(30) renderer.ResetCamera() renderer.SetBackground(backgroundColor) renderWindow = vtkRenderWindow() renderWindow.AddRenderer(renderer) renderWindow.SetSize(640, 480) renderWindow.SetWindowName('CubeAxesActor') renderWindowInteractor = vtkRenderWindowInteractor() renderWindowInteractor.SetRenderWindow(renderWindow) renderWindow.Render() renderer.GetActiveCamera().Zoom(0.8) renderWindowInteractor.Start() if __name__ == '__main__': main()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1146898.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MOSFET基本工作原理图解:开关状态转换详解

深入理解MOSFET:从结构到开关行为的完整图解指南你有没有遇到过这样的情况——明明代码写对了,驱动信号也输出了,可电机就是启动不了?或者电源效率上不去,发热严重,排查半天发现是MOSFET在“捣鬼”&#xf…

ResNet18实战指南:构建智能农业监测系统

ResNet18实战指南:构建智能农业监测系统 1. 引言:通用物体识别在智能农业中的价值 随着人工智能技术的普及,通用物体识别正成为智能农业系统的核心能力之一。从田间作物生长状态监测、病虫害识别,到农机设备自动巡检、牲畜行为分…

ResNet18部署案例:教育场景应用开发指南

ResNet18部署案例:教育场景应用开发指南 1. 引言:通用物体识别在教育中的价值 随着人工智能技术的普及,通用物体识别正逐步融入教育信息化体系。从智能教学辅助到校园安全监控,再到学生行为分析与实验数据自动标注,图…

USB_Burning_Tool批量模式下固件一致性保障方案

如何让 USB_Burning_Tool 在批量烧录中“零出错”?一套工业级固件一致性保障实战方案你有没有遇到过这样的场景:产线正在批量烧录设备,几十台机器同时连接,进度条飞快推进——结果几小时后抽检发现,有几台设备烧的是旧…

ResNet18实战:5分钟搭建高精度图像分类系统

ResNet18实战:5分钟搭建高精度图像分类系统 1. 引言:通用物体识别的工程价值 在计算机视觉领域,通用物体识别是构建智能系统的基石能力之一。无论是内容审核、智能相册管理,还是增强现实(AR)场景理解&…

DisplacementPlot 结构动态可视化

一:主要的知识点 1、说明 本文只是教程内容的一小段,因博客字数限制,故进行拆分。主教程链接:vtk教程——逐行解析官网所有Python示例-CSDN博客 2、知识点纪要 本段代码主要涉及的有①vtkWarpVector 根据向量场对几何体进行形…

ExponentialCosine 复杂的二维数学函数映射为3D曲面

一:主要的知识点 1、说明 本文只是教程内容的一小段,因博客字数限制,故进行拆分。主教程链接:vtk教程——逐行解析官网所有Python示例-CSDN博客 2、知识点纪要 本段代码主要涉及的有①vtkWarpScalar根据标量值沿着发现方向进行…

STC89C52控制蜂鸣器演奏乐曲完整指南

用STC89C52让蜂鸣器“唱”出《小星星》——从原理到实战的完整实现你有没有试过让一块最普通的51单片机,带着一个几毛钱的蜂鸣器,把《小星星》从头到尾演奏一遍?听起来像魔法,其实并不难。这不仅是电子爱好者入门时的经典项目&…

ResNet18实战:教育智能教具识别系统

ResNet18实战:教育智能教具识别系统 1. 引言:通用物体识别与ResNet-18的工程价值 在智能教育硬件快速发展的今天,如何让教学设备“看懂”学生手中的实物,成为提升互动体验的关键。例如,在幼儿认知课堂中,…

ResNet18优化实战:量化加速推理的完整步骤

ResNet18优化实战:量化加速推理的完整步骤 1. 背景与挑战:通用物体识别中的效率瓶颈 在边缘计算和终端部署场景中,深度学习模型的推理速度与资源消耗成为决定用户体验的关键因素。尽管ResNet-18作为轻量级残差网络已被广泛用于图像分类任务…

通俗解释波形发生器设计中的频率控制

波形发生器设计中的频率控制:从原理到实战你有没有想过,当你按下函数发生器上的“1kHz正弦波”按钮时,它是如何精准地输出一个稳定、干净的信号?背后其实是一套精密的数字控制系统在默默工作。而其中最关键的一环,就是…

ResNet18实战:智能监控系统物体识别部署案例

ResNet18实战:智能监控系统物体识别部署案例 1. 引言:通用物体识别的工程价值与ResNet-18的定位 在智能监控、安防预警、行为分析等实际场景中,通用物体识别是构建视觉感知能力的基础环节。传统方案依赖人工规则或轻量级分类器,…

ResNet18实战:构建高稳定性识别服务的关键

ResNet18实战:构建高稳定性识别服务的关键 1. 通用物体识别与ResNet-18的工程价值 在当前AI应用快速落地的背景下,通用图像分类已成为智能系统感知世界的基础能力。从智能家居到内容审核,从辅助驾驶到AR交互,精准、稳定、低延迟…

ResNet18实战教程:服装分类系统开发

ResNet18实战教程:服装分类系统开发 1. 引言 1.1 学习目标 本文将带你从零开始,使用 ResNet-18 模型构建一个完整的服装图像分类系统。你将掌握: - 如何加载并微调预训练的 ResNet-18 模型 - 构建数据管道与图像增强策略 - 训练流程设计与…

ResNet18应用解析:智能交通管理系统

ResNet18应用解析:智能交通管理系统 1. 技术背景与应用场景 随着城市化进程的加速,交通管理正面临前所未有的挑战。传统的监控系统依赖人工值守和规则化检测,难以应对复杂多变的交通场景。近年来,深度学习技术的突破为智能交通系…

ResNet18性能测试:CPU环境下的推理速度对比

ResNet18性能测试:CPU环境下的推理速度对比 1. 背景与应用场景 在边缘计算、嵌入式设备和资源受限的生产环境中,深度学习模型的CPU推理性能成为决定其能否落地的关键因素。尽管GPU在训练和高并发推理中表现优异,但CPU因其普适性、低成本和低…

多层板PCB生产流程实例分析:常见缺陷及改善措施

多层板PCB生产全流程实战解析:从缺陷溯源到工艺优化你有没有遇到过这样的情况?一块设计完美的16层服务器主板,在回流焊后突然出现间歇性通信故障。FA(失效分析)拆解发现,问题竟出在第8层一个不起眼的微孔—…

ResNet18部署详解:Kubernetes集群部署方案

ResNet18部署详解:Kubernetes集群部署方案 1. 背景与技术选型 1.1 通用物体识别的工程需求 在当前AI服务快速落地的背景下,通用图像分类作为计算机视觉的基础能力,广泛应用于内容审核、智能相册、AR交互和自动化标注等场景。其中&#xff…

ResNet18应用案例:智能垃圾分类系统

ResNet18应用案例:智能垃圾分类系统 1. 引言:通用物体识别与ResNet-18的工程价值 在智能城市和环保科技快速发展的背景下,自动化垃圾分类系统正从实验室走向实际应用场景。传统依赖人工分拣或规则匹配的方式效率低、成本高,而基…

ResNet18性能测试:批量处理能力评测

ResNet18性能测试:批量处理能力评测 1. 引言:通用物体识别中的ResNet-18价值定位 在当前AI视觉应用广泛落地的背景下,高效、稳定、可离线运行的图像分类模型成为边缘计算与本地化部署的关键需求。ResNet-18作为深度残差网络(Dee…