news 2026/5/7 4:16:53

BillboardTextActor3D 3D字体随镜头旋转

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
BillboardTextActor3D 3D字体随镜头旋转

一:主要的知识点

1、说明

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

2、知识点纪要

本段代码主要涉及的有①vtk中几种txt的对比,②vtkBillboardTextActor3D的简介


二:代码及注释

#!/usr/bin/env python3 # noinspection PyUnresolvedReferences import vtkmodules.vtkInteractionStyle # noinspection PyUnresolvedReferences import vtkmodules.vtkRenderingFreeType # noinspection PyUnresolvedReferences import vtkmodules.vtkRenderingOpenGL2 from vtkmodules.vtkCommonColor import vtkNamedColors # noinspection PyUnresolvedReferences from vtkmodules.vtkCommonCore import vtkCommand from vtkmodules.vtkCommonCore import ( vtkMinimalStandardRandomSequence ) from vtkmodules.vtkFiltersSources import vtkSphereSource from vtkmodules.vtkRenderingCore import ( vtkActor, vtkBillboardTextActor3D, vtkPolyDataMapper, vtkRenderWindow, vtkRenderWindowInteractor, vtkRenderer ) def main(): colors = vtkNamedColors() rng = vtkMinimalStandardRandomSequence() rng.SetSeed(5127) renderer = vtkRenderer() renderer.SetBackground(colors.GetColor3d('DarkSlateGray')) render_window = vtkRenderWindow() render_window.AddRenderer(renderer) render_window.SetWindowName('BillboardTextActor3D') iren = vtkRenderWindowInteractor() iren.SetRenderWindow(render_window) sphere_source = vtkSphereSource() sphere_source.SetCenter(0.0, 0.0, 0.0) sphere_source.SetRadius(1.0) min_r = -10.0 max_r = 10.0 for i in range(0, 10): if i == 0: mapper = vtkPolyDataMapper() mapper.SetInputConnection(sphere_source.GetOutputPort()) actor = vtkActor() actor.SetMapper(mapper) actor.SetPosition(0, 0, 0) actor.GetProperty().SetColor(colors.GetColor3d('Peacock')) renderer.AddActor(actor) mapper = vtkPolyDataMapper() mapper.SetInputConnection(sphere_source.GetOutputPort()) actor = vtkActor() actor.SetMapper(mapper) actor.SetPosition(0, 0, 0) actor.GetProperty().SetColor(colors.GetColor3d('MistyRose')) """ vtkBillboardTextActor3D 是一种 3D 文字显示类,能够在三维空间中的任意坐标位置显示文字,并自动面向相机 """ text_actor = vtkBillboardTextActor3D() text_actor.SetPosition(actor.GetPosition()) text_actor.GetTextProperty().SetFontSize(12) text_actor.GetTextProperty().SetColor(colors.GetColor3d('Gold')) text_actor.GetTextProperty().SetJustificationToCentered() """ 几种text的比对 类名 | 类型 | 位置坐标系 | 是否随相机旋转 | 是否受光照影响 | 常见用途 vtkTextActor | 2D 屏幕文字 | 屏幕坐标(Viewport) | 固定在屏幕上 | 否 | UI文字、标题、图例 vtkVectorText | 3D 几何体文字 | 世界坐标(World) | 会随相机旋转 | 是(真正的 3D 模型) | 立体文字、雕刻文字 vtkBillboardTextActor3D | 3D 文字贴图 | 世界坐标(World) | 自动面向相机 | 否 | 3D 场景标注、标签、说明 """ position = random_position(min_r, max_r, rng) actor.SetPosition(position) label = f'{position[0]:0.3g}, {position[1]:0.3g}, {position[2]:0.3g}' text_actor.SetPosition(position) text_actor.SetInput(label) renderer.AddActor(actor) renderer.AddActor(text_actor) render_window.Render() render_window.SetWindowName('BillboardTextActor3D') iren.Start() def random_position(min_r, max_r, rng): p = list() for i in range(0, 3): p.append(rng.GetRangeValue(min_r, max_r)) rng.Next() return p if __name__ == '__main__': main()
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/2 4:32:17

新思考电机冲刺港股:前9个月营收14.6亿利润9706万 估值24亿

雷递网 雷建平 1月16日新思考电机日前递交招股书,准备在港交所上市。新思考电机最近一次融资是2023年,当时募资1亿,投后估值24亿。前9个月营收14.57亿 期内利润9706万新思考电机成立于2014年,是一家微型精密马达制造商&#xff0c…

作者头像 李华
网站建设 2026/5/2 0:12:58

AI如何赋能SIOT开发:从代码生成到智能优化

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 创建一个基于AI的SIOT设备管理系统原型,要求包含以下功能:1. 通过自然语言描述自动生成设备连接代码(MQTT/CoAP协议)2. 智能诊断设备…

作者头像 李华
网站建设 2026/5/4 3:43:49

交通运输十五五规划专题汇总(2026-01-05更新)

交通运输 “十五五” 规划(2026-2030 年)是我国构建现代化综合交通运输体系的中长期战略部署,聚焦 “安全、便捷、高效、绿色、经济” 目标,涵盖以下核心专题:一是基础设施网络优化,包括高铁主通道贯通、国…

作者头像 李华
网站建设 2026/5/3 4:23:38

Charles抓包零基础入门:从安装到第一个抓包

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 创建一个面向初学者的Charles入门交互教程,包含:1. 分步安装指南(Windows/Mac) 2. 基础界面导览 3. 第一个HTTP抓包演示 4. 常见术语解释 5. 简单问题排查。…

作者头像 李华
网站建设 2026/4/28 21:12:40

在AI技术能快速实现想法的时代,挖掘潜在需求成为关键——某知名深度学习论文实现库的需求分析

a. 内容描述 核心功能定位:该项目是一个简单、清晰且带有详细解释的PyTorch神经网络及相关算法的实现集合。其核心定位在于通过代码实现与并排展示的解释说明,帮助学习者更好地理解和掌握各类深度学习算法。关键应用场景:主要服务于希望深入理…

作者头像 李华
网站建设 2026/5/6 12:36:15

零信任时代下MCP架构重构指南:90天完成安全转型路径

第一章:MCP架构与零信任融合的核心理念在现代企业安全体系中,MCP(Multi-Cloud Platform)架构与零信任安全模型的深度融合已成为应对复杂网络威胁的关键路径。传统边界防御机制在多云环境中逐渐失效,资源动态分布、身份…

作者头像 李华