python绘制直线的方法

yipeiwu_com7年前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设计】。

相关文章

python远程调用rpc模块xmlrpclib的方法

RPC(Remote Procedure Call Protocol)是远程调用协议,它通过网络请求服务到远端服务器,服务器根据请求做出响应,将结果返回 它是一种C/S模式,客户端可以调...

pycharm执行python时,填写参数的方法

pycharm执行python时,填写参数的方法

1、按快捷键:alt+shift+F10调出运行窗口,之后选择Edit Configurations或者按0 2、输入参数,点击运行 以上这篇pycharm执行python时,填写参...

PyQt实现界面翻转切换效果

PyQt实现界面翻转切换效果

PyQt实现界面翻转切换效果是用qt的场景功能来实现的,用到了QGraphicsView,QGraphicsLinearLayout,QGraphicsWidget等有关qt场景的库。算...

Python实现的桶排序算法示例

Python实现的桶排序算法示例

本文实例讲述了Python实现的桶排序算法。分享给大家供大家参考,具体如下: 桶排序也叫计数排序,简单来说,就是将数据集里面所有元素按顺序列举出来,然后统计元素出现的次数。最后按顺序输出...

python实现单链表中删除倒数第K个节点的方法

本文实例为大家分享了python实现单链表中删除倒数第K个节点的具体代码,供大家参考,具体内容如下 题目: 给定一个链表,删除其中倒数第k个节点。 代码: class Linke...