欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

python绘制直线的方法

程序员文章站 2023-11-24 19:51:16
本文实例为大家分享了python绘制直线的具体代码,供大家参考,具体内容如下 #!/usr/bin/env python import vtk...

本文实例为大家分享了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()

python绘制直线的方法

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