news 2026/6/23 20:47:50

Glyph2D 同一个图形根据点云的输入产生不同位置的输出

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Glyph2D 同一个图形根据点云的输入产生不同位置的输出

一:主要的知识点

1、说明

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

2、知识点纪要

本段代码主要涉及的有①同时生成多个坐标的相同模型,②Glyph2D和Glyph3D的区别


二:代码及注释

import vtkmodules.vtkRenderingOpenGL2 from vtkmodules.vtkCommonColor import vtkNamedColors from vtkmodules.vtkCommonDataModel import vtkPolyData from vtkmodules.vtkCommonCore import vtkPoints from vtkmodules.vtkFiltersCore import vtkGlyph2D from vtkmodules.vtkFiltersSources import vtkRegularPolygonSource from vtkmodules.vtkRenderingCore import ( vtkActor, vtkPolyDataMapper, vtkRenderWindow, vtkRenderWindowInteractor, vtkRenderer ) def main(): colors = vtkNamedColors() points = vtkPoints() points.InsertNextPoint(0, 0, 0) points.InsertNextPoint(1, 1, 0) points.InsertNextPoint(2, 2, 0) polyData = vtkPolyData() polyData.SetPoints(points) polygonSource = vtkRegularPolygonSource() glyph2D = vtkGlyph2D() """ SetSourceConnection 设置 glyph 的形状来源,指定glyph长什么样子 SetInputData 直接把一个 vtkDataSet(点云、polydata 等)对象作为输入传进去 常用来指定 在这些点上放置 glyph """ glyph2D.SetSourceConnection(polygonSource.GetOutputPort()) glyph2D.SetInputData(polyData) glyph2D.Update() mapper = vtkPolyDataMapper() mapper.SetInputConnection(glyph2D.GetOutputPort()) mapper.Update() actor = vtkActor() actor.SetMapper(mapper) actor.GetProperty().SetColor(colors.GetColor3d('Salmon')) # Visualize renderer = vtkRenderer() renderWindow = vtkRenderWindow() renderWindow.AddRenderer(renderer) renderWindowInteractor = vtkRenderWindowInteractor() renderWindowInteractor.SetRenderWindow(renderWindow) renderer.AddActor(actor) renderer.SetBackground(colors.GetColor3d('SlateGray')) # style = vtkInteractorStyleImage() # renderWindowInteractor.SetInteractorStyle(style) renderWindow.SetWindowName('Glyph2D') renderWindow.Render() renderWindowInteractor.Start() """ vtkGlyph2D 与vtkGlyph3D的异同 共同点: 需要 输入点集(glyph 的放置位置) 都需要源几何体(source)(glyph 的形状,例如箭头、球、方块) 都可以根据 标量或向量数据 决定缩放、旋转、方向 区别: vtkGlyph2D 专门针对 2D 场景(平面) 输入点的 X、Y 用来放置 glyph,Z 坐标忽略或设为 0 Glyph 始终渲染在 屏幕二维坐标系下,不会随 3D 透视发生旋转、深度变化,更适合用来在 2D 图里加符号 vtkGlyph3D 针对 三维场景 输入点的 (X, Y, Z) 都会用来放置 glyph, Glyph 会真正处在 3D 空间里,受相机透视、深度遮挡等影响 支持用向量数据控制 方向(箭头指向)、标量数据控制 缩放 """ if __name__ == '__main__': main()
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/23 4:20:22

Lombok 注解:简化 Java 代码

目录一、深入理解 Lombok 注解:简化 Java 代码的利器二、Lombok 简介1、安装 Lombok1、Maven2、Gradle二、常用 Lombok 注解及示例1. Getter 和 Setter2. ToString3. EqualsAndHashCode4. NoArgsConstructor、RequiredArgsConstructor 和 AllArgsConstructor5. Data…

作者头像 李华
网站建设 2026/6/23 20:44:50

别让大数据“全表扫描”掏空你:数据分区策略与分区裁剪的实战心经

别让大数据“全表扫描”掏空你:数据分区策略与分区裁剪的实战心经 大家好,我是 Echo_Wish。今天不聊那些高屋建瓴的框架宣传,我们来点接地气的——数据分区策略怎么做才有效?分区裁剪怎么让查询跑得飞? 这话题其实特别…

作者头像 李华
网站建设 2026/6/23 22:37:47

(转载)真正的缘分,“推背感”都跟强

这个推背感就是:除了这个,其余没得选。 讲个真实故事。 有个前同事,在广告行业混了八年,前年公司裁员,他是第一批走的。原以为凭资历很快能找到下家,结果投了上百份简历,只有三家小公司给了面…

作者头像 李华
网站建设 2026/6/23 22:37:14

Hadoop生态下的数据预处理:MapReduce实战案例解析

Hadoop生态下的数据预处理:从理论到MapReduce实战的完整指南 一、引言:为什么数据预处理是大数据分析的“地基”? 你是否遇到过这样的场景? 拿到一份TB级的电商用户行为日志,却发现里面混着缺失关键字段的记录(比如没有用户ID)、格式混乱的时间戳(比如1620000000000)…

作者头像 李华
网站建设 2026/6/23 0:17:58

新手也能轻松建站!VanBlog+cpolar让博客创作和分享更简单

文章目录前言1. Linux本地部署2. VanBlog简单使用3. 安装内网穿透4. 创建公网地址5. 创建固定公网地址VanBlog 搭配 Cpolar,让博客创作不再受限于本地环境,为创作者提供了更灵活、高效的创作体验。前言 VanBlog 是一款轻量级个人博客系统,专…

作者头像 李华