如何做一张网站平面效果图如何搭建网站

张小明 2026/1/2 14:28:01
如何做一张网站平面效果图,如何搭建网站,赣州网上房地产备案网,新创建的网站一#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进行投诉反馈,一经查实,立即删除!

手机网站html5模板网站建设 业务员

网络安全是一个庞大而不断发展的领域,它包含多个专业领域,如网络防御、网络攻击、数据加密等。介绍网络安全的基本概念、技术和工具,逐步深入,帮助您成为一名合格的网络安全从业人员。 一、网络安全概念与重要性 理解网络安全的定…

张小明 2025/12/28 17:45:19 网站建设

aspnet网站开发教程什么样的网站是php网站

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 开发一个企业级Go模块管理演示项目,包含:1) 私有模块仓库配置示例 2) CI/CD流水线集成方案 3) 多环境依赖锁定机制。要求使用DeepSeek模型生成最佳实践代码&…

张小明 2025/12/31 2:14:40 网站建设

一个网站可以做多少关键字湛蓝 网站开发

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 开发一个性能对比工具页面,包含:1. 未优化的高频事件处理器(如mousemove);2. 使用防抖优化的版本;3. 使用节流…

张小明 2025/12/28 5:44:16 网站建设

电话营销网站建设网站免费域名申请

调试器扩展:原理、实现与应用 1. 多线程同步与应用验证器 在多线程编程中,同步问题可能导致程序崩溃或挂起。应用验证器(Application Verifier)的“Locks”设置可以在应用程序运行时执行一系列测试,能捕获从使用未初始化的临界区到释放包含活动且未释放的临界区的内存等…

张小明 2025/12/29 6:15:00 网站建设

做展厅 参考什么网站济南seo全网营销

3步搞定AI绘画:StabilityMatrix让创作如此简单 【免费下载链接】StabilityMatrix Multi-Platform Package Manager for Stable Diffusion 项目地址: https://gitcode.com/gh_mirrors/st/StabilityMatrix 想要体验AI绘画的魅力却担心技术门槛太高?…

张小明 2026/1/1 17:24:10 网站建设

装修公司网站建设设计作品网站开发不兼容ie8

2025年美国AI战略最新进展与全球竞争态势研究 Research on the Latest Progress of U.S. AI Strategy and Global Competitive Landscape in 2025 摘要:2025年美国AI战略动作密集,含联邦统一AI监管框架落地、芯片出口管控调整等。企业端OpenAI、谷歌竞逐…

张小明 2025/12/31 18:38:16 网站建设