vtk
挥剑段天涯
吃饭,睡觉,敲代码
展开
-
vtk三维场景基本要素
1. 灯光 VTK中用 vtkLight 代表现实场景中的灯光。 vtkLight 分为聚光灯和方向灯。聚光灯为点光源,方向灯为平行光源。 默认地,vtkLight的实例是平行光源。即,位置和焦点定义了平行于光线传播的一个向量,而且光源被认为是在无穷大点处。 常用方法如下: SetColor( ) 设置灯光颜色 SetPoison( ) 设置灯光位置 S原创 2016-05-23 18:26:13 · 2245 阅读 · 2 评论 -
vtk实战(四十七)——写入tif格式
#include vtkImageData.h>#include vtkInteractorStyleImage.h>#include vtkTIFFWriter.h>#include vtkSmartPointer.h>#include vtkImageCanvasSource2D.h>#include vtkRenderWindow.h>#include vtkRenderWind原创 2016-04-30 13:44:15 · 1085 阅读 · 0 评论 -
vtk实战(四十六)——写入pnm格式
#include vtkImageData.h>#include vtkPNMWriter.h>#include vtkSmartPointer.h>#include vtkImageCanvasSource2D.h>#include vtkSmartPointer.h>#include vtkRenderWindow.h>#include vtkRenderWindowInterac原创 2016-04-30 13:43:59 · 612 阅读 · 0 评论 -
vtk实战(四十五)——写入png格式
#include #include #include #include #include int main(){ std::string outputFilename; outputFilename = "output.png"; int extent[6] = { 0, 99, 0, 99, 0, 0 }; vtkSmartPointer imag原创 2016-04-30 13:43:44 · 2095 阅读 · 0 评论 -
vtk实战(四十四)——写入jpg格式
#include #include #include int main(int vtkNotUsed(argc), char* vtkNotUsed(argv)[]){ std::string outputFilename = "output.jpg"; int extent[6] = { 0, 99, 0, 99, 0, 0 }; vtkSmartPointe原创 2016-04-30 13:43:27 · 1708 阅读 · 0 评论 -
vtk实战(四十一)——读取tif数据
#include #include #include #include #include #include int main(int argc, char* argv[]){ char* fileName = "test.tif"; vtkSmartPointer reader = vtkSmartPointer::New(); reader原创 2016-04-30 13:43:06 · 2254 阅读 · 0 评论 -
vtk实战(三十九)——读取PNG数据
#include vtkSmartPointer.h>#include vtkImageViewer2.h>#include vtkPNGReader.h>#include vtkRenderWindow.h>#include vtkRenderWindowInteractor.h>#include vtkRenderer.h>int main(){ char* fileN原创 2016-04-30 13:42:43 · 2265 阅读 · 0 评论 -
vtk实战(三十八)——读取jpg数据(有问题)
#include #include #include #include #include #include int main(){ char* fileName = "UC截图20160429221551.jpg"; vtkSmartPointer jpegReader = vtkSmartPointer::New(); jpegReade原创 2016-04-30 13:42:28 · 1679 阅读 · 4 评论 -
vtk实战(三十七)——读取bmp数据
#include vtkSmartPointer.h>#include vtkImageViewer2.h>#include vtkBMPReader.h>#include vtkRenderWindow.h>#include vtkRenderWindowInteractor.h>#include vtkRenderer.h>int main(){ char* fileN原创 2016-04-30 13:42:12 · 1703 阅读 · 0 评论 -
vtk实战(三十六)——读取结构化点云数据
#include vtkSmartPointer.h>#include vtkPolyDataMapper.h>#include vtkStructuredPointsReader.h>#include vtkImageDataGeometryFilter.h>#include vtkRenderWindow.h>#include vtkRenderWindowInteractor.h>原创 2016-04-30 13:41:43 · 4738 阅读 · 1 评论 -
vtk实战(四十八)——写入raw/mha/mhd格式
#include #include #include #include #include #include #include #include #include #include #include int main(int, char *[]){ std::string filePath = "julia_mha.mhd"; std::string fileP原创 2016-04-30 13:44:30 · 8586 阅读 · 1 评论 -
vtk实战(四十九)——使用vtkCell3D构建三维形体
#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include原创 2016-04-30 13:44:47 · 4164 阅读 · 2 评论 -
vtk学习资源汇总
http://public.kitware.com/ 包含引擎,指向许多其它资源,如在线手册、问题解答、VTK用户邮件列表。Kitware也出售和支持用VTK开发的商业化的产品,像VolView, ActiViz, GoFly等。 http://public.kitware.com/mailman/listinfo/vtkusers 给出如何加入VTK用户邮件列表的说明。VTK用户邮件列表允许原创 2016-05-13 08:13:52 · 3363 阅读 · 0 评论 -
vtk实战(三)——点投影平面
主要采用了ProjectPoint()函数,x[3]表示点坐标,origin[3]表示平面上一点的坐标,normal[3]表示平面法向量坐标,xproj[3]表示点x投影到平面的坐标。 static void vtkPlane::ProjectPoint (double x[3],double origin[3],double normal[3],double xproj[3]原创 2016-04-25 08:17:21 · 3098 阅读 · 0 评论 -
vtk实战(二)——点到直线的距离
vtk中计算点到直线的距离有两个重载函数。//x[3]表示点的x,y,z坐标, p1[3],p2[3] 分别为直线上的两个点//函数都返回的为距离的平方/*注意:重载1中计算点到直线的距离;重载2计算点到线段的最近距离,距离最近的点必定在线段上,p1[3],p2[3]分别为线段的端点*///重载1static double vtkLine::DistanceToLine ( doub原创 2016-04-25 07:49:46 · 2158 阅读 · 0 评论 -
vtk实战(一)——HelloVtk
程序运行环境vs2013,release,64位。原创 2016-04-24 16:16:48 · 6297 阅读 · 4 评论 -
java调用动态库时,.dll文件路径问题
网上说”.dll”应该放在”.class”同级目录下,但经测试,程序报错: “java.lang.UnsatisfiedLinkError: no JniDllDemo in java.library.path” 当放到java工程同级目录时,一个例子可以调用: 当我调用vtk测试用例时,却又显示“no java.library.path”。后期这样解决的: 1.右击项目,从弹出的右原创 2016-05-09 09:54:27 · 13968 阅读 · 0 评论 -
vtk实战(五十四)—对直线设置颜色
#include <vtkVersion.h>#include <vtkSmartPointer.h>#include <vtkCellArray.h>#include <vtkCellData.h>#include <vtkUnsignedCharArray.h>#include <vtkPoints.h>#include <vtkLine.h>#include <vtkPolyDa原创 2016-05-08 09:58:48 · 3556 阅读 · 2 评论 -
vtk实战(五十三)—坐标轴
#include <vtkPolyDataMapper.h>#include <vtkActor.h>#include <vtkRenderWindow.h>#include <vtkRenderer.h>#include <vtkRenderWindowInteractor.h>#include <vtkPolyData.h>#include <vtkSphereSource.h>#原创 2016-05-07 00:01:12 · 6794 阅读 · 0 评论 -
vtk实战(五十二)—箭头
#include <vtkArrowSource.h>#include <vtkPolyData.h>#include <vtkSmartPointer.h>#include <vtkPolyDataMapper.h>#include <vtkActor.h>#include <vtkRenderWindow.h>#include <vtkRenderer.h>#include <vt原创 2016-05-06 23:16:38 · 3281 阅读 · 0 评论 -
vtk实战(五十一)—构建三维形体
#include <vtkSmartPointer.h>#include <vtkPolyDataMapper.h>#include <vtkTextMapper.h>#include <vtkActor.h>#include <vtkActor2D.h>#include <vtkRenderer.h>#include <vtkRenderWindow.h>#include <vtkR原创 2016-05-04 22:32:14 · 1793 阅读 · 0 评论 -
vtk实战(五十)—计算线段与多边形的交点
主要用到IntersectWithLine()方法,如果交叉点发生,该方法返回非0值,并且计算交叉点坐标。#include <vtkSmartPointer.h>#include <vtkPoints.h>#include <vtkPolygon.h>int main(){ vtkSmartPointer<vtkPoints> points = vtkSmartPointer<vtkP原创 2016-05-04 22:13:25 · 3276 阅读 · 0 评论 -
vtk实战(三十五)——读取结构化格网数据
#include vtkSmartPointer.h>#include vtkPolyDataMapper.h>#include vtkStructuredGridReader.h>#include vtkStructuredGridGeometryFilter.h>#include vtkRenderWindow.h>#include vtkRenderWindowInteractor原创 2016-04-30 13:41:26 · 2655 阅读 · 4 评论 -
vtk实战(三十三)——写入vts数据
#include vtkVersion.h>#include vtkCellArray.h>#include vtkPoints.h>#include vtkXMLStructuredGridWriter.h>#include vtkStructuredGrid.h>#include vtkSmartPointer.h>int main(){ vtkSmartPointer原创 2016-04-30 13:40:57 · 825 阅读 · 0 评论 -
vtk实战(十三)——读取DICOM影像文件
DICOM(Digital Imaging and Communications in Medicine)即医学数字成像和通信,是医学图像和相关信息的国际标准。 本例主要使用vtkDICOMImageReader()对DICOM图像进行操作。 注意:vtkDICOMImageReader()只能对DICOM原始文件进行操作,不处理多帧DICOM数据集。int main(){ std::原创 2016-04-27 10:43:57 · 11696 阅读 · 6 评论 -
vtk实战(十二)——读取.obj文件
OBJ文件是Alias|Wavefront公司为它的一套基于工作站的3D建模和动画软件”Advanced Visualizer”开发的一种标准3D模型文件格式。 具体内容可参照: http://www.cppblog.com/lovedday/archive/2008/06/13/53153.html 本例主要用vtkOBJReader()类读取Wavefront .obj格式的文件。#inc原创 2016-04-27 09:09:43 · 6706 阅读 · 1 评论 -
vtk实战(十一)—自定义分隔符读取文本
本例读取坐标和法向量的纯文本文件(X、Y、Z、 NX、NY、NZ)并显示在屏幕上。本例主要用到的类:vtkDelimitedTextReader()该类自定义分隔符,分割ASCII或Unicode文本文件。#include <vtkVersion.h>#include <vtkSmartPointer.h>#include <vtkProperty.h>#include <vtkPolyData原创 2016-04-27 08:49:55 · 868 阅读 · 0 评论 -
vtk实战(十)—文本格式转vtp格式
vtkxmlpolydatawriter()用来写入VTK XML polydata 格式的文件。 vtkcellarray()支持的列表结构形式:(n,id1,id2,…,idn, n,id1,id2,…,idn, …)其中n是在结构中点的数目,ID为偏移相关点列表。这种数据结构的优点:紧凑性,简单,易于外部数据的接口。然而,它是完全不足够的随机访问。#include "vtkVersion.h原创 2016-04-27 08:25:39 · 3721 阅读 · 1 评论 -
vtk实战(九)—读取三维点坐标2
以文本文件格式读取并存到一个vtkPoints( ),然后放入vtkPolyData( ),最后使用vtkVertexGlyphFilter( )显示。 程序主要用到以下类:vtkPoints( )vtkPolyData( )vtkVertexGlyphFilter( )vtkPoints( )负责点云数据的存储和操作,vtkPolyData()可以用来保存点、线、面,vtkVertexGl原创 2016-04-26 07:41:26 · 2622 阅读 · 4 评论 -
vtk实战(八)—读取.raw文件
#include vtkSmartPointer.h>#include vtkRenderWindow.h>#include vtkRenderWindowInteractor.h>#include vtkRenderer.h>#include vtkActor.h>#include vtkProperty.h>#include vtkParticleReader.h>#includ原创 2016-04-25 21:24:12 · 2802 阅读 · 1 评论 -
vtk实战(七)—读取三维点坐标
改程序主要用到的类:vtksimplepointsreader()vtksimplepointsreader( ) 类主要实现从源对象文件读取点,每一点的坐标包含三个浮点数值,每一行对应一个点的x,y,z值。#include <vtkSmartPointer.h>#include <vtkSimplePointsReader.h>#include <vtkPolyDataMapper.h>#i原创 2016-04-25 17:14:13 · 5873 阅读 · 1 评论 -
vtk实战(六)—读取".gml"文件
.gml格式,用于描述图结构的ASCII文本格式文件;说明图中基于文本的层次结构的结构,并包括组成该图中的节点,边和属性。该格式可以形容家谱,流程图,网络等图形结构。 主要到的类:vtkXGMLReader()该类主要用于读取”.gml”格式的文件。 程序代码:#include <vtkPolyData.h>#include <vtkXGMLReader.h>#include <vtkSma原创 2016-04-25 15:48:22 · 1143 阅读 · 0 评论 -
vtk实战(五)—格式转换
*.ply是Animator Pro创建的一种图形文件格式,其中包含用来描述多边形的一系列点的信息。 1. void SetInputConnection(vtkAlgorithmOutput* input);该函数用来连接特定的端口的输入指标。 2. GetOutputPort()获得输出端口对应的对象,该对象可以被传递到setinputconnection(),addinputcon原创 2016-04-25 15:10:09 · 7693 阅读 · 1 评论 -
vtk实战(十四)——解析vtk XML 文件的内容
对于vtk XML格式的文件: .vtu, .vtp, .vts, .vtr, .vti, .vto, 解析其存储单元、单元数据。#include <vtkSmartPointer.h>#include <vtkXMLReader.h>#include <vtkXMLUnstructuredGridReader.h>#include <vtkXMLPolyDataReader.h>#incl原创 2016-04-27 11:25:47 · 4342 阅读 · 0 评论 -
vtk实战(十六)——解析STL文件
主要采用vtkSTLReader()类读取“.stl” 文件,文件为ASCII或二进制文件,vtkSTLReader()类会自动检测文件是否是ASCII或二进制。#include vtkPolyData.h>#include vtkSTLReader.h>#include vtkSmartPointer.h>#include vtkPolyDataMapper.h>#include v原创 2016-04-28 11:41:39 · 7274 阅读 · 4 评论 -
vtk实战(十九)——读取 PDB数据
本例主要采用vtkPDBReader()读取PDB数据文件。#include <vtkSmartPointer.h>#include <cmath>#include <vtkGlyph3D.h>#include <vtkLODActor.h>#include <vtkLODActor.h>#include <vtkPDBReader.h>#include <vtkPolyDataMapp原创 2016-04-28 11:42:05 · 1180 阅读 · 0 评论 -
vtk实战(三十一)——写入vtp数据
#include #include #include #include #include #include int main(){ vtkSmartPointer points = vtkSmartPointer::New(); for (unsigned int i = 0; i 10; ++i) { points->In原创 2016-04-30 13:40:15 · 1618 阅读 · 0 评论 -
vtk实战(三十)——写入vtu数据
#include vtkVersion.h>#include vtkSmartPointer.h>#include vtkTetra.h>#include vtkCellArray.h>#include vtkXMLUnstructuredGridReader.h>#include vtkDataSetMapper.h>#include vtkActor.h>#include vtk原创 2016-04-30 13:39:41 · 4104 阅读 · 0 评论 -
vtk实战(二十九)——读入未知格式XMLFile数据
#include vtkSmartPointer.h>#include vtkPolyData.h>#include vtkUnstructuredGrid.h>#include vtkDataSetMapper.h>#include vtkActor.h>#include vtkRenderWindow.h>#include vtkRenderer.h>#include vtkRe原创 2016-04-30 13:38:45 · 582 阅读 · 0 评论 -
vtk实战(二十八)——读入vtr数据
#include vtkSmartPointer.h>#include vtkProperty.h>#include vtkDataSetMapper.h>#include vtkXMLRectilinearGridReader.h>#include vtkRectilinearGridGeometryFilter.h>#include vtkRenderWindow.h>#inclu原创 2016-04-30 13:37:41 · 991 阅读 · 0 评论