1. 程式人生 > >VTK-Python 2. 繪製直線

VTK-Python 2. 繪製直線

#!/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()


相關推薦

VTK-Python 2. 繪製直線

#!/usr/bin/env python import vtk # 繪製通用方法 def myshow(linepolydata): # Now we'll look at it. lineMapper = vtk.vtkPolyDataMapper()

VTK-Python 1. 繪製立方體

#!/usr/bin/env python # This is (almost) a direct C++ to Python transliteration of # <VTK-root>/Examples/DataManipulation/Cxx/Cube.

從零開始寫光柵化渲染器2直線繪製光柵化演算法

直線繪製光柵化演算法 1.數值微分DDA(Digital Differential Analyzer)演算法 1.1原理 引入增量思想,以dx≥dy(斜率[0,1])為例,考慮直線y=kx+b,當x步進為1時,y步進為k,即yi+1=yi+k,根據

(百例程式設計)2.繪製餘弦曲線和直線

題目:在螢幕上顯示0~360度的cos(x)曲線與直線f(x)=45*(y-1)+31的迭加圖形。其中cos(x)圖形用“*”表示,f(x)用“+”表示,在兩個圖形相交的點上則用f(x)圖形的符號。 #include <iostream> #include

Python 2 聲明變量 輸入輸出 練習

交互 技術 put cnblogs margin .com 最大 span 方便 變量:    代指,用於將具體信息對應到一個值,便於反復使用時方便調用。例如 name = ("斯諾登")    變量聲明規則:以字母開頭的 字母數字下劃線的組合。且不能是python代

安裝python 2.7條件下的pip環境

package 條件 packages pypi pip .py fda 2.7 安裝python wget https://pypi.python.org/packages/ff/d4/209f4939c49e31f5524fa0027bf1c8ec3107abaf7c

零基礎學python-2.7 列表與元組

cells one iss 顯示 不同 元組 jsb lsp ext 事實上,能夠把列表和元組看成普通的數組。可是這個數組能夠存儲不同的數據類型(對象) 列表和元組的差別 列表 元組 使用的符號 [] () 元素數量 可變 不可變 改動元素 不能

Python 2.7.6 安裝lxml模塊[ubuntu14.04 LTS]

targe 分享 python round .html back ubunt 文件 ati lxml --->首字母是字母l,不是數字1 lxml 2.x : https://pypi.python.org/pypi/lxml/2.3 1xml官網:http

[python 2.x] xml.etree.ElementTree module

print creat imp system bool .py mark ati mit XML 文件:xmlparse.xml <?xml version="1.0" encoding="UTF-8" standalone="no"?> <!DOCTY

[ Python - 2 ] 常見內置函數

print bdc sort [] 求值 int 同時 com ddd 1. abs(): 絕對值 In [1]: abs(-10) Out[1]: 10 View Code 2. all(): 當參數中任何一個值為False時,all() 都為False

零基礎學python-2.17 文件、open()、file()

data 文本 tails 並且 處理 detail track 減少 == 今天我們來說說文件,以及跟文件有關的內建函數open和file 首先我們在python的根文件夾下建一個名為“123”的txt文本文件 文件中面我們輸入一些文本 我們把新建文

windows平臺python 2.7環境編譯安裝zbar

hone 一個 增加 acf extension python2 sdn pat o-c 最近一個項目需要識別二維碼,找來找去找到了zbar和zxing,中間越過無數坑,總算基本上弄明白,分享出來給大家。 一、zbar官方介紹 ZBar 是款桌面電腦用條形碼/

windows平臺python 2.7環境編譯安裝zbarlight

ocs ons warnings float depend wal test eight mov 類似於前一篇博文,http://www.cnblogs.com/zhongtang/p/7148082.html中描述的情況。 編譯zbarlight同樣出現問題,簡要處理步

Python 2.7.x 和 3.x 版本區別小結

pythonpython現在很火,最近花了些時間去了解了一下,最初了解的是2.7.x版本,感覺,從書寫上是很不習慣,少了一雙大概號,取而代之的是縮進;然後跟kotlin和swift一樣省去了每行的分號,象我們這種分號強迫癥的人真心的不習慣;還有!True的條件改成not True、while後面可以跟else

LINUX 中2.6 python 2.7 版本升級 mark 備註

linux update_ python easy:首先下載源tar包  可利用linux自帶下載工具wget下載,如下所示:1# wget http://www.python.org/ftp/python/2.7.3/Python-2.7.3.tgz   下載完成後到下載目錄下,解壓1tar -zx

Centos 6.9 自帶Python 2.6.6 切換為2.7.13(or later)

source 查看 find 命令 進入目錄 進入 安裝 2.6 usr local 目的: 系統默認運行python, 系統提示2.6.6,不滿足練習環境-->切到2.7.x步驟1: find 命令查找所有的python相關文件#find / name=‘pytho

Python 2Python 3的區別

put 運行 標示 odin input raw 強調 pytho 輸入 Python 2 和Python 3 的區別: 1. 直接運行python,其實是調用的python2,輸入python3 ,其實是調用的是python3 2. 在python 2中需要提前標示出ut

mark LINUX_6.8 python_2.6.6 setup版本升級 python 2.7.9 安裝 pip 臨時使用國內鏡像源庫 指定模塊版本 刪除指定模塊

就會 yum -- 創建 tty zxvf 無法 external django 簡單但卻又經常需要使用 網上 貼子也很多 也經常用 所以 做個mark 吧: 1首先下載python2.7.9 源tar包 源碼安裝   可利用linux自帶下載工具wget下載,

python 2python 3的繼承

深度 spa init def cnblogs clas 廣度優先 sel utf-8 python 2 和 python 3 代碼均為: 1 #_*_coding:utf-8_*_ 2 #__author__ = "csy" 3 4 class A: 5

Python 2.6 安裝wxPython後提示"64.....32"錯誤解決辦法

mode mac 只需要 margin 解決方案 import ont lin ext p.p1 { margin: 0.0px 0.0px 10.0px 0.0px; line-height: 20.0px; font: 14.0px "PingFang SC" } li