首页 > 编程 > Python > 正文

python绘制直线的方法

2020-02-15 22:06:46
字体:
来源:转载
供稿:网友

本文实例为大家分享了python绘制直线的具体代码,供大家参考,具体内容如下

#!/usr/bin/env python import vtk # 绘制通用方法def myshow(linepolydata): # Now we'll look at it. lineMapper = vtk.vtkPolyDataMapper() if vtk.VTK_MAJOR_VERSION <= 5:  lineMapper.SetInput(linepolydata) else:  lineMapper.SetInputData(linepolydata)  lineMapper.SetScalarRange(0, 2) lineActor = vtk.vtkActor() lineActor.SetMapper(lineMapper)  # The usual rendering stuff. camera = vtk.vtkCamera() camera.SetPosition(1, 1, 1) camera.SetFocalPoint(0, 0, 0)  renderer = vtk.vtkRenderer() renWin = vtk.vtkRenderWindow() renWin.AddRenderer(renderer)  iren = vtk.vtkRenderWindowInteractor() iren.SetRenderWindow(renWin)  renderer.AddActor(lineActor) renderer.SetActiveCamera(camera) renderer.ResetCamera() renderer.SetBackground(0, 0, 0)  renWin.SetSize(300, 300)  # interact with data renWin.Render() iren.Start() del lineMapper del lineActor del camera del renderer del renWin del iren  def main(): # 直线在三维坐标系中的2个顶点 x = [(0.0, 0.0, 0.0),(1.0, 0.0, 0.0), (0.0, 1.0, 0.0)]  # We'll create the building blocks of polydata including data attributes. linepoly = vtk.vtkPolyData() points = vtk.vtkPoints() lines = vtk.vtkCellArray() scalars = vtk.vtkFloatArray()  for i in range(3):  points.InsertNextPoint(x[i]) linepoly.SetPoints(points)  line0 = vtk.vtkLine() line0.GetPointIds().SetId(0, 0); # 第二个0表示pts中的origin点 line0.GetPointIds().SetId(1, 1); # 第二个1表示pts中的p0点  line1 = vtk.vtkLine() line1.GetPointIds().SetId(0, 0); line1.GetPointIds().SetId(1, 2);  lines.InsertNextCell(line0) lines.InsertNextCell(line1) linepoly.SetLines(lines);  colors = vtk.vtkUnsignedCharArray() colors.SetNumberOfComponents(3); red = [255, 0, 0] colors.InsertNextTypedTuple(red); green = [0, 255, 0] colors.InsertNextTypedTuple(green); linepoly.GetCellData().SetScalars(colors);  del points del lines del scalars del colors myshow(linepoly) # Clean up del linepoly   main()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持武林站长站。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表