news 2026/8/6 11:51:46

RuledSurfaceFilter通过连接两条不平行的三维曲线(这里是两条直线段)来生成一个光滑的、由直线构成的曲面

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
RuledSurfaceFilter通过连接两条不平行的三维曲线(这里是两条直线段)来生成一个光滑的、由直线构成的曲面

一:主要的知识点

1、说明

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

2、知识点纪要

本段代码主要涉及的有①vtkRuledSurfaceFilter几何生成类介绍


二:代码及注释

import vtkmodules.vtkRenderingOpenGL2 import vtkmodules.vtkInteractionStyle from vtkmodules.vtkCommonColor import vtkNamedColors from vtkmodules.vtkCommonCore import vtkPoints from vtkmodules.vtkCommonDataModel import vtkLine, vtkCellArray, vtkPolyData from vtkmodules.vtkFiltersModeling import vtkRuledSurfaceFilter from vtkmodules.vtkRenderingCore import vtkPolyDataMapper, vtkActor, vtkRenderer, vtkRenderWindow, vtkRenderWindowInteractor def main(): colors = vtkNamedColors() points = vtkPoints() points.InsertNextPoint(0, 0, 1) points.InsertNextPoint(1, 0, 0) points.InsertNextPoint(0, 1, 0) points.InsertNextPoint(1, 1, 1) line1 = vtkLine() line1.GetPointIds().SetId(0, 0) line1.GetPointIds().SetId(1, 1) line2 = vtkLine() line2.GetPointIds().SetId(0, 2) line2.GetPointIds().SetId(1, 3) lines = vtkCellArray() lines.InsertNextCell(line1) lines.InsertNextCell(line2) polydata = vtkPolyData() polydata.SetPoints(points) polydata.SetLines(lines) """ vtkRuledSurfaceFilter 是一个几何生成类 主要用途:从两条或多条 边界曲线(lines / polylines) 之间生成一张“规则的光顺曲面(ruled surface) """ ruledSurfaceFilter = vtkRuledSurfaceFilter() ruledSurfaceFilter.SetInputData(polydata) # SetResolution 在U和V参数方向上的采样密度,更高的分辨率使曲面看起来更光滑 ruledSurfaceFilter.SetResolution(21, 21) """ SetRuledModeToResample 确保两条输入曲线被重新采样到相同数量的点 以便在它们之间创建平行的直线段(称为母线) """ ruledSurfaceFilter.SetRuledModeToResample() mapper = vtkPolyDataMapper() mapper.SetInputConnection(ruledSurfaceFilter.GetOutputPort()) actor = vtkActor() actor.SetMapper(mapper) actor.GetProperty().SetColor(colors.GetColor3d("Banana")) actor.GetProperty().SetSpecular(0.6) actor.GetProperty().SetSpecularPower(30) render = vtkRenderer() render.AddActor(actor) render.SetBackground(colors.GetColor3d("SteelBlue")) render.GetActiveCamera().Azimuth(60) render.GetActiveCamera().Elevation(60) render.ResetCamera() renderWindow = vtkRenderWindow() renderWindow.AddRenderer(render) renderWindow.SetWindowName('RuledSurfaceFilter') iren = vtkRenderWindowInteractor() iren.SetRenderWindow(renderWindow) iren.Initialize() renderWindow.Render() iren.Start() if __name__ == '__main__': main()
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/6 2:56:46

Open-AutoGLM远程控制配置终极优化方案(仅限内部分享)

第一章:Open-AutoGLM远程控制配置概述 Open-AutoGLM 是一个基于 AutoGLM 架构设计的开源自动化远程控制框架,专为实现跨平台设备管理与智能任务调度而构建。其核心优势在于融合自然语言理解能力与远程指令执行机制,允许用户通过语义化命令触发…

作者头像 李华
网站建设 2026/8/5 8:19:29

如何用Open-AutoGLM构建全自动设备监控体系?这套方案已被头部企业验证

第一章:Open-AutoGLM 异地设备管理Open-AutoGLM 是一款面向分布式环境的智能设备管理框架,专为跨地域、多节点场景下的自动化控制与状态同步设计。其核心能力在于通过轻量级通信协议实现对远程设备的实时监控、指令下发与配置更新,适用于边缘…

作者头像 李华
网站建设 2026/8/5 1:49:06

Open-AutoGLM 快捷键配置避坑指南:5个常见错误你中了几个?

第一章:Open-AutoGLM 快捷键配置的核心价值在现代开发环境中,效率是决定生产力的关键因素之一。Open-AutoGLM 通过高度可定制的快捷键系统,显著提升了用户与智能代码生成引擎之间的交互效率。合理配置快捷键不仅减少了重复性操作,…

作者头像 李华
网站建设 2026/8/5 23:07:57

Excalidraw AI生成微服务治理全景图

Excalidraw AI生成微服务治理全景图 在一次跨部门的架构评审会上,团队花了整整一小时才理清新上线的服务依赖关系——不是因为系统多复杂,而是没人能拿出一张准确、实时更新的架构图。开发说图在Confluence里,运维说那版早就过时了&#xff0…

作者头像 李华
网站建设 2026/8/4 5:32:57

Excalidraw AI商业使用授权条款说明

Excalidraw AI商业使用授权条款说明 在现代技术团队的日常协作中,可视化表达已成为沟通系统架构、产品逻辑和业务流程的核心方式。传统的绘图工具往往过于规整、僵硬,缺乏灵活性,难以激发创造力。而 Excalidraw 以其独特的“手绘风格”脱颖而…

作者头像 李华