SkyLine
Uniscope
Gnuplot(GPL)
-----------------------------------------------
Gnuplot 是一个非常好的可视化工具,它从 1986 年开始就存在了。如果没有 gnuplot 的图,就很难阅读论文。尽管 gnuplot 是命令行驱动的,但是它也在不断发展,现在也可以支持很多非交互式的应用程序了,例如它可以作为一个 GNU Octave 的绘图引擎使用。
Gnuplot 具有很好的可移植性,可以在 UNIX®、Microsoft® Windows®、 Mac OS® X 和很多其他平台上运行。它可以支持从 postscript 到新近的 PNG 等极为广泛的输出格式。
Gnuplot 可以以批处理模式进行操作,提供了一个命令脚本来生成一个图形,也是以非交互式模式来运行的,这让我们可以尝试一下它的特性来了解它们绘图的效果。
Octave 最初是在 1992 年作为化学反应堆设计教科书的一个辅助软件而编写的。其作者希望能够帮助学生解决反应堆的设计问题,而不用调试 Fortran 程序。结果获得了一种非常有用的语言,并为解决数值问题提供了交互式环境。
Octave 可以以一种脚本化模式非交互地进行操作,或者通过 C 和 C++ 语言绑定进行操作。Octave 本身就有一种非常丰富的语言,该语言看起来与 C 语言非常类似,并有一个很大的数学库,包括信号和图像处理、音频处理以及控制理论所使用的一些特殊函数。
由于 Octave 使用了 gnuplot 作为其后端实现,因此使用 gnuplot 可以绘制的所有东西都可以使用 Octave 进行绘制。Octave 的确有一种更丰富的语言来进行计算,它有很多明显的优点,但是仍然有 gnuplot 的一些限制。
MayaVi 最初是为 Computational Fluid Dynamics(CFD)作为一个可视化工具而开发的。当人们认识到它在其他领域中的效用之后,它就作为一种通用科学数据可视化工具重新进行了设计。
MayaVi 背后的魔力来自于 VTK。VTK 是一个用来进行数据可视化和图像处理的开放源码系统,它在科学社区中被广泛地使用。VTK 通过为 Tcl/Tk、Java 编程语言以及 Python 加上 C++ 库所提供的脚本化接口而封装了很多功能。VTK 在很多操作系统上都是可移植的,包括 UNIX、Windows 和 MAC OS X。
围绕 VTK 的 MayaVi 外壳可以作为一个 Python 模块从其他 Python 程序中导入,并通过 Python 解释器来编写脚本。MayaVi 所提供的 tkinter GUI 允许进行过滤器的配置和应用,以及在可视化基础上渲染一些灯光效果。
VTK最早是作为Prentice Hall出版的"The Visualization Toolkit: An Object-Oriented Approach to 3DGraphics"一书的附件释出,该书及其软件是由奇异研发部 Corporate R&D的三位研究人员:Will Schroeder、Ken Martin与Bill Lorensen用其闲暇时间合作,在获得奇异公司的许可下完成的(故该软件的授权完全是由这三位决定),由于其开放源码式的授权,该书一上市后,VTK 很快地建立了其使用及开发者社群,同时,奇异与其他数间公司也开始提供对VTK的支援。 Will Schroeder和Ken Martin在1998年时离开奇异,创立了Kitware公司。
有了Kitware的资金挹注,VTK社群快速地成长,其在学术研究及商业应用的领域受到重用,例如Slicer 生物医学计算软件使用VTK作为其核心,许多讨论研究VTK的IEEE论文出现。VTK也是许多大型研究机构如Sandia, Los Alamosn及Livermore国家实验室与Kitware的合作基础。这些研究中心使用VTK来作为视觉化资料的基础处理工具。 VTK亦是新创的美国国家卫生研究院所规画,作为开发未来计算工具之基石的美国国家医学影像计算合作联盟(National Alliance for Medical Image Computing, NA-MIC)的关键计算工具。
VTK是一个开放源码、自由获取的软件系统,全世界的数以千计的研究人员和开发人员用它来进行3D计算机图形,图像处理,可视化。VTK包含一个c++类库,众多的翻译接口层,包括Tcl/Tk,Java,Python。 Visualization Toolkit 是一个用于可视化应用程序构造与运行的支撑环境,它是在三维函 数库OpenGL 的基础上采用面向对象的设计方法发展起来的,它将我们在可视化开发过程中会经常遇到的细节屏蔽起来,并将一些常用的算法封装起来。比如 Visualization Toolkit 将我们在表面重建中比较常见的MarchingCubes 算法封装起来,以类的形式给我们以支持,这样我们在对三维规则点阵数据进行表面重建时就不必再重复编写MarchingCubes 算法的代码,而直接使用Visualization Toolkit 中已经提供的vtkMarchingCubes 类。 Visualization Toolkit 是给从事可视化应用程序开发工作的研究人员提供直接的技术支持的一个强大的可视化开发工具,它以用户使用的方便性和灵活性为主要原则,具有如下的特点:
1) 具有强大的三维图形功能。Visualization Toolkit 既支持基于体素Voxel-basedrendering 的体绘制Volume Rendering又保留了传统的面绘制,从而在极大的改善可视化效果的同时又可以充分利用现有的图形库和图形硬件
2) Visualization Toolkit 的体系结构使其具有非常好的流streaming和高速缓存caching 的能力,在处理大量的数据时不必考虑内存资源的限制
3) Visualization Toolkit 能够更好的支持基于网络的工具比如Java 和VRML 随着Web 和Internet 技术的发展VisualizationToolkit 有着很好的发展前景
4) 能够支持多种着色如OpenGL 等
5) Visualization Toolkit 具有设备无关性使其代码具有良好的可移植性
6) Visualization Toolkit 中定义了许多宏,这些宏极大的简化了编程工作并且加强了一致的对象行为
7) Visualization Toolkit 具有更丰富的数据类型,支持对多种数据类型进行处理
8) 既可以工作于Windows 操作系统又可以工作于Unix 操作系统极大的方便了用户。
通过VTK将科学实验数据如建筑学、气象学、医学、生物学或者航空航天科学,对体、面、光源等等的逼真渲染,从而帮助人们理解那些采取错综复杂而又往 往规模庞大的数字呈现形式的科学概念或结果。美国计算机科学家布鲁斯·麦考梅克在其1987年关于科学可视化的定义之中,首次阐述了科学可视化的目标和范 围:“利用计算机图形学来创建视觉图像,帮助人们理解科学技术概念或结果的那些错综复杂而又往往规模庞大的数字表现形式”。
- GNU Octave(GPL)
Octave 最初是在 1992 年作为化学反应堆设计教科书的一个辅助软件而编写的。其作者希望能够帮助学生解决反应堆的设计问题,而不用调试 Fortran 程序。结果获得了一种非常有用的语言,并为解决数值问题提供了交互式环境。
Octave 可以以一种脚本化模式非交互地进行操作,或者通过 C 和 C++ 语言绑定进行操作。Octave 本身就有一种非常丰富的语言,该语言看起来与 C 语言非常类似,并有一个很大的数学库,包括信号和图像处理、音频处理以及控制理论所使用的一些特殊函数。
由于 Octave 使用了 gnuplot 作为其后端实现,因此使用 gnuplot 可以绘制的所有东西都可以使用 Octave 进行绘制。Octave 的确有一种更丰富的语言来进行计算,它有很多明显的优点,但是仍然有 gnuplot 的一些限制。
- Scilab(Scilab)
Scilab 诞生于 1994 年,它是由法国的 INRIA(Institut national de recherche en informatique et en automatique)和 ENPC(École Nationale des Ponts et Chaussées)设计的。从 2003 年开始 Scilab 开始由 Scilab Consortium 进行维护。
Scilab 包括一个很大的数学函数库,可以利用使用 C 和 Fortran 之类的高级语言编写的程序进行扩充。它还有重载数据类型和操作的能力。它包括一个集成的高级语言,不过这种语言与 C 语言稍微有些区别。
Scilab 中有很多工具包提供了 2-D 和 3-D 的图形动画、优化、统计、图标和网络、信号处理、混合动态系统模拟和仿真以及其他许多由社区所贡献的功能。
在大部分 UNIX 系统上都可以使用 Scilab,在较新的 Windows 操作系统上也可以使用。与 GNU Octave 一样, Scilab 也有很好的文档。由于它是一个欧洲的项目,因此还可以找到很多使用除英语之外的其他语言所编写的文档和文章。
- Maxima(GPL)
- MayaVi(基于VTK)
MayaVi 最初是为 Computational Fluid Dynamics(CFD)作为一个可视化工具而开发的。当人们认识到它在其他领域中的效用之后,它就作为一种通用科学数据可视化工具重新进行了设计。
MayaVi 背后的魔力来自于 VTK。VTK 是一个用来进行数据可视化和图像处理的开放源码系统,它在科学社区中被广泛地使用。VTK 通过为 Tcl/Tk、Java 编程语言以及 Python 加上 C++ 库所提供的脚本化接口而封装了很多功能。VTK 在很多操作系统上都是可移植的,包括 UNIX、Windows 和 MAC OS X。
围绕 VTK 的 MayaVi 外壳可以作为一个 Python 模块从其他 Python 程序中导入,并通过 Python 解释器来编写脚本。MayaVi 所提供的 tkinter GUI 允许进行过滤器的配置和应用,以及在可视化基础上渲染一些灯光效果。
- vtk:(http://www.vtk.org/)
VTK最早是作为Prentice Hall出版的"The Visualization Toolkit: An Object-Oriented Approach to 3DGraphics"一书的附件释出,该书及其软件是由奇异研发部 Corporate R&D的三位研究人员:Will Schroeder、Ken Martin与Bill Lorensen用其闲暇时间合作,在获得奇异公司的许可下完成的(故该软件的授权完全是由这三位决定),由于其开放源码式的授权,该书一上市后,VTK 很快地建立了其使用及开发者社群,同时,奇异与其他数间公司也开始提供对VTK的支援。 Will Schroeder和Ken Martin在1998年时离开奇异,创立了Kitware公司。
有了Kitware的资金挹注,VTK社群快速地成长,其在学术研究及商业应用的领域受到重用,例如Slicer 生物医学计算软件使用VTK作为其核心,许多讨论研究VTK的IEEE论文出现。VTK也是许多大型研究机构如Sandia, Los Alamosn及Livermore国家实验室与Kitware的合作基础。这些研究中心使用VTK来作为视觉化资料的基础处理工具。 VTK亦是新创的美国国家卫生研究院所规画,作为开发未来计算工具之基石的美国国家医学影像计算合作联盟(National Alliance for Medical Image Computing, NA-MIC)的关键计算工具。
VTK是一个开放源码、自由获取的软件系统,全世界的数以千计的研究人员和开发人员用它来进行3D计算机图形,图像处理,可视化。VTK包含一个c++类库,众多的翻译接口层,包括Tcl/Tk,Java,Python。 Visualization Toolkit 是一个用于可视化应用程序构造与运行的支撑环境,它是在三维函 数库OpenGL 的基础上采用面向对象的设计方法发展起来的,它将我们在可视化开发过程中会经常遇到的细节屏蔽起来,并将一些常用的算法封装起来。比如 Visualization Toolkit 将我们在表面重建中比较常见的MarchingCubes 算法封装起来,以类的形式给我们以支持,这样我们在对三维规则点阵数据进行表面重建时就不必再重复编写MarchingCubes 算法的代码,而直接使用Visualization Toolkit 中已经提供的vtkMarchingCubes 类。 Visualization Toolkit 是给从事可视化应用程序开发工作的研究人员提供直接的技术支持的一个强大的可视化开发工具,它以用户使用的方便性和灵活性为主要原则,具有如下的特点:
1) 具有强大的三维图形功能。Visualization Toolkit 既支持基于体素Voxel-basedrendering 的体绘制Volume Rendering又保留了传统的面绘制,从而在极大的改善可视化效果的同时又可以充分利用现有的图形库和图形硬件
2) Visualization Toolkit 的体系结构使其具有非常好的流streaming和高速缓存caching 的能力,在处理大量的数据时不必考虑内存资源的限制
3) Visualization Toolkit 能够更好的支持基于网络的工具比如Java 和VRML 随着Web 和Internet 技术的发展VisualizationToolkit 有着很好的发展前景
4) 能够支持多种着色如OpenGL 等
5) Visualization Toolkit 具有设备无关性使其代码具有良好的可移植性
6) Visualization Toolkit 中定义了许多宏,这些宏极大的简化了编程工作并且加强了一致的对象行为
7) Visualization Toolkit 具有更丰富的数据类型,支持对多种数据类型进行处理
8) 既可以工作于Windows 操作系统又可以工作于Unix 操作系统极大的方便了用户。
通过VTK将科学实验数据如建筑学、气象学、医学、生物学或者航空航天科学,对体、面、光源等等的逼真渲染,从而帮助人们理解那些采取错综复杂而又往 往规模庞大的数字呈现形式的科学概念或结果。美国计算机科学家布鲁斯·麦考梅克在其1987年关于科学可视化的定义之中,首次阐述了科学可视化的目标和范 围:“利用计算机图形学来创建视觉图像,帮助人们理解科学技术概念或结果的那些错综复杂而又往往规模庞大的数字表现形式”。
- IDL