陈丽娜
河南商丘师范学院计算机与信息技术学院 河南 476000
矢量场在科学计算和工程分析中扮演着重要的角色,它描述了许多非常重要而且常见的物理现象。从宇宙中星体之间的相互作用到微小的分子内部的运动规律,自然界中充满了形形色色的矢量场。而自然界中很多物质的运动和变化过程是无法直接观察的,为了解决这个问题,人们借助先进的计算机图形和图像技术,通过计算机模拟仿真,从而形成了一个新的学科方向——矢量场可视化。
矢量场可视化是科学计算可视化中最具挑战性的研究课题之一,它以直观的图形图像显示场的运动,透过抽象数据有效洞察其内涵本质和变化规律,广泛应用于计算流体力学、航空动力学、大气物理和气象分析等领域。矢量场可视化的最重要的部分是矢量场的映射,所以一般情况下,矢量场的映射方法也称为矢量场可视化的方法。目前,矢量场可视化的方法和技术很多,而图标法是最简单的矢量场可视化方法。由于该方法既可以可视化矢量的方向,还以可视化矢量的大小,所以尽管简单,一直以来仍受到人们的青睐。
但是将图标法用在采样数据比较密集且变化不是很明显的矢量场中时,将所有矢量逐点映射为点图标常会导致所生成的图像杂乱无章,显示太少又不能准确地把握矢量场的变化情况。本文对传统的点图标法做一改进:对于矢量场中局部区域变化不是很明显的部分,用该区域某一点的矢量来代替该区域的矢量,而对于局部变化明显的部分,用较多的图标来表示矢量的大小和方向,这样使得图像不致于显得混乱。并将该方法用在具体的流场中,获得了较好的效果。
图标法属于直接可视化的技术。直接可视化是指几乎不经过预处理而直接应用如图标法或颜色编码等方法来可视化整个数据场的技术,它是一种全局可视化技术。
图标法有点图标法、线图标法和面图标法。其中线图标法有时候也被认为是基于几何的可视化方法,面图标法主要应用于三维的情况。应用较多的点图标法是箭头表示法,它是最简单的显示矢量数据的方法,本文提到的图标法即是指点图标法。
点图标法在具体实现时,对于每一采样点,用具有大小和方向的箭头映射矢量的大小和方向。这里在 VC++6.0环境下,基于 OpenGL,对于两类矢量场,我们得到了该矢量场的点图标图像。其中图1表示的是某一系统方程的矢量图像,图2表示的是某一特定采样数据矢量场的矢量图像。
图1 传统方法可视化系统方程矢量场
图2 传统方法可视化密集采样数据矢量场
从图1中我们看到,对于简单的矢量场,使用传统的点图标法,效果完全可以。但是在图2中,采样数据很密集,如果想看到整个矢量场的全貌,那么矢量的大小和方向几乎很难看出,除非对局部的图像进行放大,但是放大之后又看不到全部的图像。而且观察图 2,该矢量场局部矢量的方向变化不是很大,因此,有必要做一改进,使得图标法能更好的显示出矢量的的大小和方向特征。
这里图标法改进是基于矢量局部平行性的原理。矢量的局部平行性是指:对于大多数的矢量场来说,矢量的大小和方向是不会突然变化的,也即:一个小的局部范围内的矢量的大小和方向的变化是平缓的,它的变化需要一个过程。因此,可以将局部范围内的矢量“合并”,用该范围内某一点的矢量的大小和方向来替代该局部范围内的所有矢量。
具体实现时,可以根据具体情况而定,可以设定不同的条件来决定什么情况矢量的变化大,什么情况矢量的变化小。就图1的系统方程所代表的矢量场来说,矢量的大小和方向很清楚,无需再做改进。但是对图2这一具体矢量场,我们看不清矢量的方向和大小,需要做进一步的改进。
具体实现时,可以分为以下步骤:
(1) 对于采样数据,将其映射为规整的网格数据。这里和传统的矢量场可视化方法是一致的。
(2) 将四个相邻的网格点的矢量用该区域内最左下角的网格点的矢量来替代,那么得到一个新的矢量场,该矢量场矢量的大小和方向能够近似的代表原来矢量场的特征。对某一密集采样数据场简化之后得到的矢量场如图3所示。
(3) 由于简化过的矢量场中的矢量仍然是规整的网格上的矢量,再考虑相邻矢量的方向的变化的程度,如果相邻矢量的变化小于10度(指角度差的绝对值),则表明该矢量变化不大。由于这里的矢量场大小变化并不大,所以可以忽略,只考虑矢量方向的变化。对于方向变化小于 10度的这些矢量,我们可以用局部范围内的一个矢量来代替。由于这种方法是根据矢量方向变化的程度来决定可视化图像上的图标的数量的,所以矢量方向变化小的地方,矢量图标数目就少,反之,矢量方向变化大的地方,矢量图标数目就多。用这种方法得到的改进的矢量场图像如图4所示。
图3 对密集采样数据矢量场简化
图4 改进方法可视化密集采样数据矢量场
从以上可以看到,图标法是最简单的可视化平面矢量场的方法,它既可以可视化矢量的方向又可以可视化矢量的大小。但是将该方法用在数据密集的矢量场中时,会造成视觉的混乱,矢量的大小和方向不易显示出来。
图2中矢量的大小和方向都看不清楚,而图4采用了改进的图标法来显示矢量场,由于将局部范围内的矢量进行了简化,同时,矢量的数目由矢量变化的程度来决定,所以可视化之后的图像能比较清晰的显示矢量场的大小和方向。
在阅读一些国外的参考文献时,我们也可以考虑将矢量不用箭头来表示,而是用有意思的图形来表示,这样得到的图像可能会更加生动,这也是进一步研究的一个方向。另外,还可以考虑用数据重建的方法来改进可视化图像的质量。
[1]周迪斌.基于纹理的高质量矢量可视化研究[D].浙江大学.2008.
[2]张文,李晓梅.矢量场可视化算法研究与系统设计[D].国防科技大学.2001.
[3]陈丽娜.基于线积分卷积可视化矢量场大小的研究[J],陕西理工学院学报(自然科学版).2009.
[4]陈丽娜.用拓扑结构分析法实现平面向量场可视化[J].西南民族大学学报(自然科学版).2009.
[5]陈丽娜,杨冠杰.快速检测流场中涡核区域的角度函数法[J].工程图学学报.2008.
[6]Post F.H, deLeeuw W.C, Sadarjoen I.Ari et al.Global,geometric.and feature-based techniques for vector field visualization[J].Future Generation Computer Systems.vol.15.no.1.1999.
[7]M. Kirby, H. Marmanis, and D. H. Laidlaw.Visualizing multivalued data from 2D incompressible flows using concepts from painting[J].In Proceedings of IEEE Visualization 1999.
[8]C.G. Healey and J.T. Enns.Perception and Painting: A Search for Effective, Engaging Visualizations[J], IEEE Computer Graphics and Applications, vol. 22, no. 2, 2002.
[9]张彦,薛威,王一多.对瑕疵图像基于模型的部分数据重建[J].煤炭技术.2009.