本文实例为大家分享了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()
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。