2026/4/16 20:53:24
网站建设
项目流程
网站建设基本流程视频,住房和城乡建设部官网,市场推广,怎么删除网站死链一#xff1a;主要的知识点
1、说明
本文只是教程内容的一小段#xff0c;因博客字数限制#xff0c;故进行拆分。主教程链接#xff1a;vtk教程——逐行解析官网所有Python示例-CSDN博客
2、知识点纪要
本段代码主要涉及的有①vtkHedgeHog将数据关联到网格上的顶点 二…一主要的知识点1、说明本文只是教程内容的一小段因博客字数限制故进行拆分。主教程链接vtk教程——逐行解析官网所有Python示例-CSDN博客2、知识点纪要本段代码主要涉及的有①vtkHedgeHog将数据关联到网格上的顶点二代码及注释import vtkmodules.vtkRenderingOpenGL2 import vtkmodules.vtkInteractionStyle from vtkmodules.vtkCommonCore import vtkDoubleArray, vtkMath, vtkPoints from vtkmodules.vtkCommonDataModel import vtkStructuredGrid from vtkmodules.vtkCommonColor import vtkNamedColors import math from vtkmodules.vtkFiltersCore import vtkHedgeHog from vtkmodules.vtkRenderingCore import ( vtkActor, vtkPolyDataMapper, vtkRenderWindow, vtkRenderWindowInteractor, vtkRenderer ) def main(): colors vtkNamedColors() rMin 0.5 rMax 1.0 dims [13, 11, 11] sgrid vtkStructuredGrid() sgrid.SetDimensions(dims) vectors vtkDoubleArray() vectors.SetNumberOfComponents(3) vectors.SetNumberOfTuples(dims[0] * dims[1] * dims[2]) points vtkPoints() points.Allocate(dims[0] * dims[1] * dims[2]) # 计算了网格中点的总数,分配了空间 deltaZ 2.0 / (dims[2] - 1) deltaRad (rMax - rMin) / (dims[1] - 1) x [0.0] * 3 v [0.0] * 3 for k in range(0, dims[2]): x[2] -1.0 k * deltaZ kOffset k * dims[0] * dims[1] for j in range(0, dims[1]): radius rMin j * deltaRad jOffset j * dims[0] for i in range(0, dims[0]): theta i * vtkMath.RadiansFromDegrees(15.0) x[0] radius * math.cos(theta) x[1] radius * math.sin(theta) v[0] -x[1] v[1] x[0] offset i jOffset kOffset points.InsertPoint(offset, x) vectors.InsertTuple(offset, v) sgrid.SetPoints(points) SetVectors 将计算出的 3D 矢量数据场vectors作为属性绑定到结构化网格sgrid的每一个点上 点数据 (Point Data)这些属性与几何体上的点一一对应。常见的点数据包括 标量 (Scalars)如温度、压力单个数值。 矢量 (Vectors)如速度、力三个分量 V ) 张量 (Tensors)用于应力分析等 sgrid.GetPointData().SetVectors(vectors) vtkHedgeHog 将数据集如结构化网格、非结构化网格等上每个点关联的矢量数据 转化成一系列可渲染的 3D 箭头或直线从而直观地展示矢量场的方向和强度 hedgehog vtkHedgeHog() hedgehog.SetInputData(sgrid) SetScaleFactor 用于控制生成的箭头相对于原始矢量大小的缩放比例 如果矢量值很小可能需要设置一个较大的 factor 来使箭头清晰可见 如果矢量值很大可能需要设置一个较小的 factor 来防止箭头互相重叠或溢出屏幕 hedgehog.SetScaleFactor(0.1) # 绘制的箭头长度原始矢量的大小×0.1 sgridMapper vtkPolyDataMapper() sgridMapper.SetInputConnection(hedgehog.GetOutputPort()) sgridActor vtkActor() sgridActor.SetMapper(sgridMapper) sgridActor.GetProperty().SetColor(colors.GetColor3d(Gold)) # Create the usual rendering stuff renderer vtkRenderer() renWin vtkRenderWindow() renWin.AddRenderer(renderer) renWin.SetWindowName(SGrid) iren vtkRenderWindowInteractor() iren.SetRenderWindow(renWin) renderer.AddActor(sgridActor) renderer.SetBackground(colors.GetColor3d(MidnightBlue)) renderer.ResetCamera() renderer.GetActiveCamera().Elevation(60.0) renderer.GetActiveCamera().Azimuth(30.0) renderer.GetActiveCamera().Dolly(1.0) renWin.SetSize(640, 480) # Interact with the data. renWin.Render() iren.Start() if __name__ __main__: main()