python绘制直线的方法

yipeiwu_com5年前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发送邮件的实例代码讲解

一、邮件发送示例 邮件发送示例 flask_email及smtplib原生邮件发送示例,适用于基于Flask框架开发,但是内部设置的定时任务发送邮件/或提供离线接口发送邮件操作 1....

pyqt5移动鼠标显示坐标的方法

如下所示: # -*- coding: utf-8 -*- import sys from PyQt5.QtWidgets import (QApplication, QMain...

Python 类的继承实例详解

Python 类的继承详解 Python既然是面向对象的,当然支持类的继承,Python实现类的继承比JavaScript简单。 Parent类: class Parent:...

Python下载懒人图库JavaScript特效

这是一个简单的Python脚本,主要从懒人图库下载JavaScript特效模板,在脚本中使用了gevent这个第三方库,使用的时候需要先安装。 #!/usr/bin/python #...

python itchat实现调用微信接口的第三方模块方法

itchat是一个开源的微信个人号接口,使用python调用微信从未如此简单。 使用不到三十行的代码,你就可以完成一个能够处理所有信息的微信机器人。 当然,该api的使用远不止一个机器人...