在Windows环境下用Python语言开发VTK程序
1.安装Python集成开发环境IDLE:下载地址:
2.然后到VTK官网下载vtkpythone-6.2.0-Windows-32bits.exe,下载地址:,然后直接安装,安装目录自行选择,比如:E:\Program Files\VTK 6.2.0。
3.添加系统环境变量:
A.把VTK安装目录下的bin文件夹的路径添加到Path环境变量中,如下图所示:
B.新建一个PYTHONPATH系统环境变量,将VTK的所有的python包所在的目录site-packages添加到新建的系统环境变量PYTHONPATH中,如下图所示:
4.然后就可以在Python的IDLE界面中导入VTK的模块和库了,如敲入以下指令,不能出现报错:
导入VTK库之后,可以测试VTK的版本:
5.新建一个testVTK.py文件:
[python] view plain copy
import vtk
cone_a=vtk.vtkConeSource()
coneMapper = vtk.vtkPolyDataMapper()
coneMapper.SetInputConnection(cone_a.GetOutputPort())
coneActor = vtk.vtkActor()
coneActor.SetMapper(coneMapper)
ren1= vtk.vtkRenderer()
ren1.AddActor( coneActor )
ren1.SetBackground( 0.1, 0.2, 0.4 )
renWin = vtk.vtkRenderWindow()
renWin.AddRenderer( ren1 )
renWin.SetSize( 300, 300 )
renWin.Render()
iren=vtk.vtkRenderWindowInteractor()
iren.SetRenderWindow(renWin)
iren.Initialize()
iren.Start()
保存之后运行结果如下:
vtkpng-6.1.libvtktiff-6.1.lib
ws2_32.lib
Psapi.lib
glu32.lib
opengl32.lib
4、链接器--->输入--->命令行
/OUT:"F:\VTK\DevCode\Step1-VS2012\Cxx\Debug\Cone.exe" /MANIFEST /NXCOMPAT /PDB:"F:/VTK61/VTK-6.1.0/SLN/bin/Debug/Cone.pdb" /DYNAMICBASE "kernel32.lib" "user32.lib" "gdi32.lib" "winspool.lib" "shell32.lib" "ole32.lib" "oleaut32.lib" "uuid.lib" "comdlg32.lib" "advapi32.lib" "F:\VTK61\VTK-6.1.0\SLN\lib\Debug\vtkFiltersSources-6.1.lib" "F:\VTK61\VTK-6.1.0\SLN\lib\Debug\vtkCommonComputationalGeometry-6.1.lib" "F:\VTK61\VTK-6.1.0\SLN\lib\Debug\vtkCommonDataModel-6.1.lib" "F:\VTK61\VTK-6.1.0\SLN\lib\Debug\vtkCommonMath-6.1.lib" "F:\VTK61\VTK-6.1.0\SLN\lib\Debug\vtkCommonCore-6.1.lib" "F:\VTK61\VTK-6.1.0\SLN\lib\Debug\vtksys-6.1.lib" "F:\VTK61\VTK-6.1.0\SLN\lib\Debug\vtkCommonMisc-6.1.lib" "F:\VTK61\VTK-6.1.0\SLN\lib\Debug\vtkCommonSystem-6.1.lib" "F:\VTK61\VTK-6.1.0\SLN\lib\Debug\vtkCommonTransforms-6.1.lib" "F:\VTK61\VTK-6.1.0\SLN\lib\Debug\vtkFiltersGeneral-6.1.lib" "F:\VTK61\VTK-6.1.0\SLN\lib\Debug\vtkFiltersCore-6.1.lib" "F:\VTK61\VTK-6.1.0\SLN\lib\Debug\vtkCommonExecutionModel-6.1.lib" "F:\VTK61\VTK-6.1.0\SLN\lib\Debug\vtkInteractionStyle-6.1.lib" "F:\VTK61\VTK-6.1.0\SLN\lib\Debug\vtkFiltersExtraction-6.1.lib" "F:\VTK61\VTK-6.1.0\SLN\lib\Debug\vtkFiltersStatistics-6.1.lib" "F:\VTK61\VTK-6.1.0\SLN\lib\Debug\vtkImagingFourier-6.1.lib" "F:\VTK61\VTK-6.1.0\SLN\lib\Debug\vtkImagingCore-6.1.lib" "F:\VTK61\VTK-6.1.0\SLN\lib\Debug\vtkalglib-6.1.lib" "F:\VTK61\VTK-6.1.0\SLN\lib\Debug\vtkRenderingCore-6.1.lib" "F:\VTK61\VTK-6.1.0\SLN\lib\Debug\vtkFiltersGeometry-6.1.lib" "F:\VTK61\VTK-6.1.0\SLN\lib\Debug\vtkRenderingOpenGL-6.1.lib" "F:\VTK61\VTK-6.1.0\SLN\lib\Debug\vtkImagingHybrid-6.1.lib" "F:\VTK61\VTK-6.1.0\SLN\lib\Debug\vtkIOImage-6.1.lib" "F:\VTK61\VTK-6.1.0\SLN\lib\Debug\vtkDICOMParser-6.1.lib" "F:\VTK61\VTK-6.1.0\SLN\lib\Debug\vtkIOCore-6.1.lib" "F:\VTK61\VTK-6.1.0\SLN\lib\Debug\vtkzlib-6.1.lib" "F:\VTK61\VTK-6.1.0\SLN\lib\Debug\vtkmetaio-6.1.lib" "F:\VTK61\VTK-6.1.0\SLN\lib\Debug\vtkjpeg-6.1.lib" "F:\VTK61\VTK-6.1.0\SLN\lib\Debug\vtkpng-6.1.lib" "F:\VTK61\VTK-6.1.0\SLN\lib\Debug\vtktiff-6.1.lib" "ws2_32.lib" "Psapi.lib" "glu32.lib" "opengl32.lib" /IMPLIB:"F:/VTK61/VTK-6.1.0/SLN/lib/Debug/Cone.lib" /DEBUG /MACHINE:X86 /SAFESEH /INCREMENTAL /PGD:"F:\VTK\DevCode\Step1-VS2012\Cxx\Debug\Cone.pgd" /SUBSYSTEM:CONSOLE /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /ManifestFile:"Cone.di
clear all[X,Y] = meshgrid(linspace(-3,3))Z = peaks(X,Y)%生成数据z zR=[1,6]%设置z范围,你自己可以改z1=Z.*(Z>=zR(1)&Z<=zR(2))%为取出设定范围数据而得到逻辑数组z2=Z%为不覆盖原始Z,新建变量z2(z1(:)==0)=NaN%设定范围外的值改为NAN,得到初始数据s=size(z2)s1=[5,10]%设置分块大小(按数据点),你自己可以改,但必须根据原始数据大小能够整除,如不能整除可以剪裁或添加数据%如果是按坐标系,你需要计算100×100的坐标中有多少个数据点,再来更改上面的设置s2=[s(1)/s1(1),s(2)/s1(2)]%计算分多少块for i=1:s2(1)for j=1:s2(2)b=z2((i-1)*s1(1)+1:i*s1(1),(j-1)*s1(2)+1:j*s1(2))%分块数据a(i,j)=length(find(isnan(b)))%计算每个分块中NaN的个数endendfor i=1:s2(1)for j=1:s2(2)c((i-1)*s1(1)+1:i*s1(1),(j-1)*s1(2)+1:j*s1(2))=a(i,j)%让每一分块赋值为该块的个数endendz3=(c<=min(c(:)))%为取出概率最小的数据重新赋颜色而得到逻辑数组z4=Z%为不覆盖原始Z,新建变量z4(z3(:)==1)=max(Z(:))%设定概率最小的数据颜色暗红色figure(2)mesh(X,Y,z2,Z)% surf(X,Y,z2,a2)axis([-3 3 -3 3 -10 10])% shading interptitle('裁剪的原始数据')figure(3)mesh(X,Y,z2,c)% surf(X,Y,z2,a2)axis([-3 3 -3 3 -10 10])% shading interptitle('裁剪的原始数据分块NaN个数的分布')figure(4)mesh(X,Y,z2,z4)% surf(X,Y,z2,a2)axis([-3 3 -3 3 -10 10])% shading interptitle('裁剪的原始数据NaN最少的分块区域')欢迎分享,转载请注明来源:内存溢出
评论列表(0条)