0基础1小时网站建设教程企业系统包括哪些系统

张小明 2026/1/2 16:05:21
0基础1小时网站建设教程,企业系统包括哪些系统,西安网站注册,集团网站建设效果一#xff1a;主要的知识点 1、说明 本文只是教程内容的一小段#xff0c;因博客字数限制#xff0c;故进行拆分。主教程链接#xff1a;vtk教程——逐行解析官网所有Python示例-CSDN博客 2、知识点纪要 本段代码主要涉及的有①vtkMultiThreshold工作原理#xff0c;②…一主要的知识点1、说明本文只是教程内容的一小段因博客字数限制故进行拆分。主教程链接vtk教程——逐行解析官网所有Python示例-CSDN博客2、知识点纪要本段代码主要涉及的有①vtkMultiThreshold工作原理②vtkSelectEnclosedPoints 判断一个数据集 (polyData1) 中的点是否位于另一个封闭曲面 (polyData2) 的内部二代码及注释import vtkmodules.vtkRenderingOpenGL2 from vtkmodules.vtkCommonColor import vtkNamedColors from vtkmodules.vtkCommonDataModel import vtkDataObject from vtkmodules.vtkCommonTransforms import vtkTransform from vtkmodules.vtkFiltersGeneral import vtkMultiThreshold, vtkTransformPolyDataFilter from vtkmodules.vtkFiltersModeling import vtkSelectEnclosedPoints from vtkmodules.vtkIOGeometry import ( vtkBYUReader, vtkOBJReader, vtkSTLReader ) from vtkmodules.vtkIOLegacy import vtkPolyDataReader from vtkmodules.vtkIOPLY import vtkPLYReader from vtkmodules.vtkIOXML import vtkXMLPolyDataReader from vtkmodules.vtkRenderingCore import ( vtkActor, vtkDataSetMapper, vtkRenderWindow, vtkRenderWindowInteractor, vtkRenderer ) import os def ReadPolyData(file_name): path, extension os.path.splitext(file_name) extension extension.lower() if extension .ply: reader vtkPLYReader() reader.SetFileName(file_name) reader.Update() poly_data reader.GetOutput() elif extension .vtp: reader vtkXMLPolyDataReader() reader.SetFileName(file_name) reader.Update() poly_data reader.GetOutput() elif extension .obj: reader vtkOBJReader() reader.SetFileName(file_name) reader.Update() poly_data reader.GetOutput() elif extension .stl: reader vtkSTLReader() reader.SetFileName(file_name) reader.Update() poly_data reader.GetOutput() elif extension .vtk: reader vtkPolyDataReader() reader.SetFileName(file_name) reader.Update() poly_data reader.GetOutput() elif extension .g: reader vtkBYUReader() reader.SetGeometryFileName(file_name) reader.Update() poly_data reader.GetOutput() else: # Return a None if the extension is unknown. poly_data None return poly_data def main(): fn1 Data/cow.g fn2 0 polyData1 ReadPolyData(fn1) # 根据polyData1进行旋转得到polyData2 center polyData1.GetCenter() transform vtkTransform() transform.Translate(center[0], center[1], center[2]) transform.RotateY(90.0) transform.Translate(-center[0], -center[1], -center[2]) transformPD vtkTransformPolyDataFilter() transformPD.SetTransform(transform) transformPD.SetInputData(polyData1) transformPD.Update() polyData2 transformPD.GetOutput() vtkSelectEnclosedPoints 判断一个数据集 (polyData1) 中的点是否位于另一个封闭曲面 (polyData2) 的内部 select vtkSelectEnclosedPoints() SetInputData 设置输入数据集。这个数据集包含你想要进行判断的点。 select.SetInputData(polyData1) SetSurfaceData 设置参考曲面。这个数据集必须是一个封闭的、流形的多边形网格 select.SetSurfaceData(polyData2) vtkMultiThreshold 是 VTK 里一个 阈值过滤器 (threshold filter) 它的特点是 可以在一次操作里设置多个阈值条件并根据这些条件把输入数据分成多个输出结果 普通的 vtkThreshold 只能设置一个阈值范围比如提取标量在 [100, 200] 之间的单元格。 vtkMultiThreshold 则可以定义 多个规则一次性生成 多个子数据集省去了重复调用多个 vtkThreshold 的麻烦 工作原理: 你给它输入一个 数据集 (vtkDataSet)比如 vtkUnstructuredGrid 或 vtkImageData。 你定义多个阈值条件比如 规则 1提取标量 50 规则 2提取 50 ≤ 标量 100 规则 3提取 标量 ≥ 100 它会输出多个数据集每个对应一个规则。 threshold vtkMultiThreshold() AddBandpassIntervalSet 作用是定义一个过滤规则用于从数据中提取出特定范围内的单元cells 这段代码的具体含义是 threshold.AddBandpassIntervalSet(): 调用 vtkMultiThreshold 过滤器的这个方法来创建一个“通带”区间集即只保留满足特定条件的单元。 0, 0: 定义了数据值的范围。这里表示数据值必须等于 0。 vtkDataObject.FIELD_ASSOCIATION_POINTS: 指定要检查的数据是点数据point data。 SelectedPoints: 指定要检查的数据数组的名称。这是 vtkSelectEnclosedPoints 过滤器在前面步骤中创建的那个数组。 0, 1: 定义了一个单元中点值满足条件的数量范围。这里表示要被选中的单元其所有点0 到 1的 SelectedPoints 值都必须在前面定义的 [0, 0] 范围内。 outsideId threshold.AddBandpassIntervalSet(0, 0, # 区间范围下限0上限0 vtkDataObject.FIELD_ASSOCIATION_POINTS, # 作用在点数据上 SelectedPoints, # 要筛选的数组名字 0, 1) # includeLower0不包含下界includeUpper1包含上界 具体含义 0, 0 → 选取 SelectedPoints 数组值在 [0, 0] 之间的点也就是值恰好等于 0 的点。 因为 vtkSelectEnclosedPoints 的 SelectedPoints 标量内部点 1 外部点 0 vtkDataObject.FIELD_ASSOCIATION_POINTS → 指定这个筛选条件是作用在 点数据 (point data) 上而不是单元(cell data)。 SelectedPoints → 要筛选的数组名字就是 vtkSelectEnclosedPoints 生成的标量数组。 在这段代码里它之所以是这个名字是因为 vtkSelectEnclosedPoints 默认就会生成一个标量数组名字叫 SelectedPoints 如果不知道数组名字可以先查看数组里有哪些数组 pointData polydata.GetPointData() for i in range(pointData.GetNumberOfArrays()): print(pointData.GetArrayName(i)) 单元数据就是下面这样写 cellData polydata.GetCellData() for i in range(cellData.GetNumberOfArrays()): print(cellData.GetArrayName(i)) component 0 指定数组的第几个分量例如 0 x, 1 y, 2 z 如果数组是标量就写 0 allScalars 1 当数组有多个分量时是否要求所有分量都满足区间条件 0 → 只检查指定的 component 分量 1 → 要求数组的所有分量都在 [xmin, xmax] 内 上边界和下边界就是第0和第1个索引所代表的两个数 所以这里实际上是筛选出 SelectedPoints 0 的点。 返回值 outsideId 返回的是这个阈值区间的 ID可以用来后续控制比如启用/禁用某个条件 insideId threshold.AddBandpassIntervalSet(1, 1, vtkDataObject.FIELD_ASSOCIATION_POINTS, SelectedPoints, 0, 1) AddIntervalSet 寻找那些至少有一个点在内部值1同时至少有一个点在外部值0的单元。这些单元恰好就是位于边界上的单元 0, 1: 定义了数据值范围。这个区间是 [0, 1]表示所有值为 0 或 1 的点都符合条件 OPEN参数:定义了区间的开闭类型所以 [0, 1] 在这里实际上指的是所有大于 0 且小于 1 的值。但是由于我们前面 vtkSelectEnclosedPoints 过滤器生成的 SelectedPoints 数组值只有 0 和 1所以这里的 OPEN 会使我们定义的规则变得特殊 0, 0:当与 vtkMultiThreshold.OPEN, vtkMultiThreshold.OPEN 结合使用时它会检查一个单元中既有值在 0-1 范围内的点即 0 或 1又有值不在 0-1 范围内的点。在这里它用来捕捉那些**既有值为 0 的点外部又有值为 1 的点内部**的单元 borderId threshold.AddIntervalSet(0, 1, vtkMultiThreshold.OPEN, vtkMultiThreshold.OPEN, vtkDataObject.FIELD_ASSOCIATION_POINTS, SelectedPoints, 0, 0) threshold.SetInputConnection(select.GetOutputPort()) OutputSet 设置最终要输出的数据集 threshold.OutputSet(outsideId) threshold.OutputSet(insideId) threshold.OutputSet(borderId) threshold.Update() colors vtkNamedColors() outsideColor colors.GetColor3d(Crimson) insideColor colors.GetColor3d(Banana) borderColor colors.GetColor3d(Mint) surfaceColor colors.GetColor3d(Peacock) backgroundColor colors.GetColor3d(Silver) outsideMapper vtkDataSetMapper() outsideMapper.SetInputData(threshold.GetOutput().GetBlock(outsideId).GetBlock(0)) outsideMapper.ScalarVisibilityOff() outsideActor vtkActor() outsideActor.SetMapper(outsideMapper) outsideActor.GetProperty().SetDiffuseColor(outsideColor) outsideActor.GetProperty().SetSpecular(.6) outsideActor.GetProperty().SetSpecularPower(30) insideMapper vtkDataSetMapper() insideMapper.SetInputData(threshold.GetOutput().GetBlock(insideId).GetBlock(0)) insideMapper.ScalarVisibilityOff() insideActor vtkActor() insideActor.SetMapper(insideMapper) insideActor.GetProperty().SetDiffuseColor(insideColor) insideActor.GetProperty().SetSpecular(.6) insideActor.GetProperty().SetSpecularPower(30) insideActor.GetProperty().EdgeVisibilityOn() borderMapper vtkDataSetMapper() borderMapper.SetInputData(threshold.GetOutput().GetBlock(borderId).GetBlock(0)) borderMapper.ScalarVisibilityOff() borderActor vtkActor() borderActor.SetMapper(borderMapper) borderActor.GetProperty().SetDiffuseColor(borderColor) borderActor.GetProperty().SetSpecular(.6) borderActor.GetProperty().SetSpecularPower(30) borderActor.GetProperty().EdgeVisibilityOn() surfaceMapper vtkDataSetMapper() surfaceMapper.SetInputData(polyData2) surfaceMapper.ScalarVisibilityOff() surfaceActor vtkActor() surfaceActor.SetMapper(surfaceMapper) surfaceActor.GetProperty().SetDiffuseColor(surfaceColor) surfaceActor.GetProperty().SetOpacity(.1) renderer vtkRenderer() renderWindow vtkRenderWindow() renderWindow.AddRenderer(renderer) renderWindow.SetSize(640, 480) renderWindowInteractor vtkRenderWindowInteractor() renderWindowInteractor.SetRenderWindow(renderWindow) renderer.SetBackground(backgroundColor) renderer.UseHiddenLineRemovalOn() renderer.AddActor(surfaceActor) renderer.AddActor(outsideActor) renderer.AddActor(insideActor) renderer.AddActor(borderActor) renderWindow.SetWindowName(CellsInsideObject) renderWindow.Render() renderer.GetActiveCamera().Azimuth(30) renderer.GetActiveCamera().Elevation(30) renderer.GetActiveCamera().Dolly(1.25) renderWindow.Render() renderWindowInteractor.Start() if __name__ __main__: main()
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

慈溪电商网站建设公司建设部建筑招投标网站

微信机器人开发文档 作为专注微信生态开发的高阶API封装平台,WTAPI框架凭借深度协议解析与RPA流程自动化技术,已实现微信从个人号到社群、朋友圈的全链路功能覆盖。无论是营销客服、用户运营还是数据管理,开发者均可通过简洁的API调用&#…

张小明 2025/12/27 5:39:04 网站建设

企业电商网站建设软件开发主要文档

还在为HDR视频在普通设备上播放泛白而烦恼吗?DownKyi的视频格式转换功能为你带来完美解决方案!这款专为B站优化的下载工具不仅能轻松处理8K超高清视频,更提供智能色彩空间转换,让HDR视频在任何设备上都能呈现自然色彩。 【免费下载…

张小明 2025/12/27 5:39:02 网站建设

厦门网站建设建设公司什么软件推广好

微信小程序二维码生成终极指南:从零基础到实战应用 【免费下载链接】weapp-qrcode Wechat miniapp generate qrcode image 项目地址: https://gitcode.com/gh_mirrors/wea/weapp-qrcode 还在为微信小程序中集成二维码功能而烦恼吗?weapp-qrcode作…

张小明 2026/1/2 2:40:34 网站建设

网站建设 爱诚科技做棋子网站怎么提高浏览量

《时序同步者》公元2045年,人类早已不再用 Git 或 Mercurial 管理代码——他们用时序链(ChronoChain)。每一行代码的诞生、修改、删除,都被记录在不可篡改的时空哈希中。程序员不再是写代码的人,而是时序调谐师&#x…

张小明 2026/1/1 10:53:34 网站建设

专业网站优化哪家好微信公众平台怎么注册

地理数据是现代应用开发中不可或缺的核心资源,world.geo.json项目提供了全球地理边界数据的完整集合。这个项目包含了从国家级别到美国各州郡县的详细地理信息,为开发者构建地图应用、数据分析平台和地理可视化系统提供了强大支撑。 【免费下载链接】wor…

张小明 2025/12/31 2:59:10 网站建设

wordpress的托管绍兴seo推广

在智慧城市建设向 “精细化治理、人性化服务” 纵深推进的过程中,多功能气象自动站正成为不可或缺的核心基础设施。它以全要素、高精准、实时化的气象数据为纽带,融入城市运行的各个场景,从灾害防控到民生服务,从基建运维到生.态治…

张小明 2025/12/27 5:39:05 网站建设