网络编程
位置:首页>> 网络编程>> Python编程>> python绘制直线的方法

python绘制直线的方法

作者:genispan  发布时间:2022-10-08 20:01:52 

标签:python,绘制直线

本文实例为大家分享了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绘制直线的方法

来源:https://blog.csdn.net/genispan/article/details/79584494

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com