哪些网站可以找到做跨境电商的公司两个男生如何做网站
哪些网站可以找到做跨境电商的公司,两个男生如何做网站,网上卖货平台有哪些,上海公司做网站的一#xff1a;主要的知识点
1、说明
本文只是教程内容的一小段#xff0c;因博客字数限制#xff0c;故进行拆分。主教程链接#xff1a;vtk教程——逐行解析官网所有Python示例-CSDN博客
2、知识点纪要
本段代码主要涉及的有①vtkClipPolyData对于模型的裁剪 二#…一主要的知识点1、说明本文只是教程内容的一小段因博客字数限制故进行拆分。主教程链接vtk教程——逐行解析官网所有Python示例-CSDN博客2、知识点纪要本段代码主要涉及的有①vtkClipPolyData对于模型的裁剪二代码及注释from vtkmodules.vtkIOGeometry import vtkBYUReader import vtkmodules.vtkRenderingOpenGL2 import vtkmodules.vtkInteractionStyle from vtkmodules.vtkCommonColor import vtkNamedColors from vtkmodules.vtkFiltersCore import vtkClipPolyData, vtkFeatureEdges, vtkStripper,vtkTubeFilter, vtkImplicitPolyDataDistance from vtkmodules.vtkCommonDataModel import vtkPlane, vtkPolyData from vtkmodules.vtkRenderingCore import vtkDataSetMapper, vtkActor, vtkRenderer, vtkRenderWindow, \ vtkRenderWindowInteractor, vtkPolyDataMapper import math from vtkmodules.vtkCommonCore import vtkPoints from vtkmodules.vtkCommonComputationalGeometry import vtkParametricSpline from vtkmodules.vtkFiltersSources import vtkParametricFunctionSource, vtkSphereSource def main(): file_path Data/cow.g colors vtkNamedColors() backgroundColor colors.GetColor3d(steel_blue) boundaryColor colors.GetColor3d(Banana) clipColor colors.GetColor3d(Tomato) reader_ vtkBYUReader() reader_.SetFileName(file_path) reader_.Update() polyData reader_.GetOutput() plane vtkPlane() plane.SetOrigin(polyData.GetCenter()) plane.SetNormal(1, -1, -1) 对 vtkPolyData多边形网格 进行裁剪Clip即根据一个标量场或几何平面把模型切开保留某一部分的几何 标量场的裁剪比如输入数据中有点属性如温度、压力、速度大小)根据这些裁剪 clipper vtkClipPolyData() clipper.SetInputData(polyData) clipper.SetClipFunction(plane) clipper.SetValue(0) # 保留平面正侧(法线指向的半空间) # clipper.GenerateClippedOutputOn() # 生成被移除的部分 clipper.Update() polyData clipper.GetOutput() clipMapper vtkDataSetMapper() clipMapper.SetInputData(polyData) clipActor vtkActor() clipActor.SetMapper(clipMapper) clipActor.GetProperty().SetDiffuseColor(clipColor) clipActor.GetProperty().SetInterpolationToFlat() clipActor.GetProperty().EdgeVisibilityOn() boundaryEdges vtkFeatureEdges() boundaryEdges.SetInputData(polyData) boundaryEdges.BoundaryEdgesOn() boundaryEdges.FeatureEdgesOff() boundaryEdges.NonManifoldEdgesOff() boundaryEdges.ManifoldEdgesOff() boundaryStrips vtkStripper() boundaryStrips.SetInputConnection(boundaryEdges.GetOutputPort()) boundaryStrips.Update() 相当于模型的深拷贝 boundaryPoly vtkPolyData() boundaryPoly.SetPoints(boundaryStrips.GetOutput().GetPoints()) boundaryPoly.SetPolys(boundaryStrips.GetOutput().GetLines()) boundaryMapper vtkPolyDataMapper() boundaryMapper.SetInputData(boundaryPoly) boundaryActor vtkActor() boundaryActor.SetMapper(boundaryMapper) boundaryActor.GetProperty().SetDiffuseColor(boundaryColor) renderer vtkRenderer() renderWindow vtkRenderWindow() renderWindow.AddRenderer(renderer) interactor vtkRenderWindowInteractor() interactor.SetRenderWindow(renderWindow) # set background color and size renderer.SetBackground(backgroundColor) renderWindow.SetSize(640, 480) # add our actor to the renderer renderer.AddActor(clipActor) renderer.AddActor(boundaryActor) # Generate an interesting view renderer.ResetCamera() renderer.GetActiveCamera().Azimuth(30) renderer.GetActiveCamera().Elevation(30) renderer.GetActiveCamera().Dolly(1.2) renderer.ResetCameraClippingRange() renderWindow.Render() renderWindow.SetWindowName(CapClip) renderWindow.Render() interactor.Start() def main1(): colors vtkNamedColors() # 1. 创建 spline cx, cy, cz 0, 0, 0 r 5 points vtkPoints() for theta in range(0, 390, 30): # 每隔30度一个点 rad math.radians(theta) x cx r * math.cos(rad) y cy r * math.sin(rad) z cz points.InsertNextPoint(x, y, z) vtkParametricSpline 给定一系列离散的 3D 控制点它能计算出一条平滑、连续的曲线函数样条) spline vtkParametricSpline() spline.SetPoints(points) vtkParametricFunctionSource 将一个数学函数转换成一个三维几何模型 splineSource vtkParametricFunctionSource() splineSource.SetParametricFunction(spline) splineSource.Update() # 2. 把曲线变成一根“管道” tube vtkTubeFilter() tube.SetInputConnection(splineSource.GetOutputPort()) tube.SetRadius(0.5) tube.SetNumberOfSides(200) tube.Update() # 3. 读取目标模型例如球 sphere vtkSphereSource() sphere.SetThetaResolution(100) sphere.SetCenter(0, 0, 0) sphere.SetRadius(r) sphere.SetPhiResolution(200) sphere.SetThetaResolution(200) sphere.Update() vtkImplicitPolyDataDistance 能把“显式的几何模型PolyData”转换成一个可以进行空间距离计算和隐式函数裁剪**的“隐式函数对象” implicit vtkImplicitPolyDataDistance() implicit.SetInput(tube.GetOutput()) # 5. 用隐式函数裁剪模型 clipper vtkClipPolyData() clipper.SetInputConnection(sphere.GetOutputPort()) clipper.SetClipFunction(implicit) clipper.GenerateClippedOutputOn() # 6. 显示结果 mapper vtkPolyDataMapper() mapper.SetInputConnection(clipper.GetOutputPort()) actor vtkActor() actor.SetMapper(mapper) mapper1 vtkPolyDataMapper() mapper1.SetInputConnection(sphere.GetOutputPort()) actor1 vtkActor() actor1.SetMapper(mapper1) actor1.GetProperty().SetColor(colors.GetColor3d(Yellow)) ren vtkRenderer() ren.AddActor(actor) # ren.AddActor(actor1) ren.SetBackground(0.1, 0.1, 0.1) renWin vtkRenderWindow() renWin.AddRenderer(ren) iren vtkRenderWindowInteractor() iren.SetRenderWindow(renWin) iren.Initialize() renWin.Render() iren.Start() if __name__ __main__: main() # 基于模型表面上的点构建曲线进行裁剪 main1()