基于多密度层次的流场可视化方法_3

文档序号:9887962阅读:来源:国知局
化方法,首先使用一种混合算法生成低密度的可视化结果,在该混合算法中,首先利用基 于熵值的种子点选取算法保证流线的覆盖性,然后利用控制网格的方式保证流线的均匀 性。最后在低密度的可视化结果上,使用基于流线属性对流线进行筛选,最终获得不同密度 的可视化结果。在多密度的可视化结果中,高密度层次的结果具有较少的流线,使用者可以 清晰地观察到流场的大致结构,在低密度层次的流线结果中,使用者可以观察到更多的细 To
[0055] 本发明的整体框架见图1,主要包括以下几个步骤:
[0056] 1.基于混合算法的流线生成(图l(b)(c)):本发明使用基于熵值的种子点选取算 法和基于网格的空白域填充算法来生成最低密度层次的可视化结果。该结果满足均匀性、 覆盖性、连续性。
[0057] 2.基于流线属性的流线筛选(图1(d)):本发明根据流线与流场间的距离和流线长 度这两种属性对流线集进行筛选,控制流线与流场间距离这一属性可以生成不同密度的流 线结果。控制流场长度这一属性可以剔除较短的流线,使最终的流线结果满足连续性。
[0058] 本发明可以为用户提供2维或3维的流场可视化结果,可以用于有关流场研究领域 中理解流场整体结构特征,为用户提供更快更易理解的流场可视化结果。
[0059] 本发明实验机器配置如下:Intel Core i53500mq,8G RAM,ATI Radeon HD 7450M,Windows7,VS2012。
[0060] 下面结合附图和具体实例进一步详细说明本发明。
[0061 ] 1.基于混合算法的流线生成
[0062]本发明中使用了一种混合算法来生成密度最大的流线集。在该算法中主要包括两 个部分:基于熵值的种子点选取算法和基于网格的空白域填充算法,基于熵值的种子点选 取可以使流线可视化结果包含流场中的重要结构特征;基于网格的空白域填充算法可以使 可视化结果更加均匀。
[0063] 1.1种子选取算法
[0064] 本发明使用香农熵来选出包含临界点的种子点集合,香农熵衡量的是一组向量所
含有的信息量,向量之间的差异越大,熵值越大;在流场中,临界点周围的方向差异很大,故 熵值很I ra # 十的点可以选出流场的临界点。
[0065]
[0066] 式(1)中H(X)是某一点的熵值,P(X)是在该点邻域内X这一方向出现的概率,X表示 向量的方向。本发明通过计算可视化区域内每个点的邻域熵值来选出熵值较大的点作为种 子点来绘制流线。在本文的实验中,二维流场中我们选取的某一点周围的9点(包括该点本 身)作为邻域,熵值计算完成后本次实验选取的阈值是0.7;三维流场中我们选取某一点周 围的27点(包括该点本身)作为邻域,由于三维场数据量较大,若直接选取大于某一阈值的 熵值点时,熵值点的数量将会很多,因此,本文采用按比例采样的方法来选取初始的种子 点。即在熵值大于〇. 97倍最大熵值的点中,采用1:10的采样比例,在熵值大于0.95倍最大熵 值小于0.97倍最大熵值的点中,采用1:20的采样比例等。最终初始种子点的数量控制在 1000左右。
[0067] 种子点选取完成后,本文使用四阶龙格库塔方法来计算流线。
[0068] 1.2空白域填充算法
[0069] 在经过基于熵值的种子点选取后,可视化结果可能存在空白区域,本发明在这一 部分介绍了如何利用网格来限制流线间的距离,使最终的可视化效果满足均匀性。空白域 填充算法是一种基于空间网格化的迭代算法,其大致思路是将整个流场分为很多小的网 格,网格的大小可以由用户自定义完成,而后在生成流线时标记流线所经过的网格,然后检 测相连的空白网格,用其代表空白域,然后将每一个空白域的中心作为种子点,生成流线。 然后重新计算空白域重复上述操作,当空白域的规模低于某一阈值时,将停止绘制。
[0070] 1.2.1网格标记
[0071] 在本发明的空白域填充算法中,空白域的定义需要检测边界的存在,所以本发明 首先会根据当前流线进行边界初始化和流线标记的工作。首先,对当前流场进行整个流场 边界网格的确定,假设流场网格的大小为NXN,那么如图2所示,在二维场四周定义一圈已 被标记的网格,使得未标记网格的数量为(N-l)X(N-l)。
[0072] 除了对网格边界进行标记,在进行空白域填充时,其初始的流线是经过熵值选取 种子点生成的,因此我们还需根据当前流线标记网格。在本发明中,由于流线是由很多小的 线段构成,所以标记流线只需检测线段与哪些网格相交即可。其具体的过程是:假设标记线 段(a,b),首先求解端点a、b所在的网格,然后在由线段(a,b)为对角线的矩形区域内逐个判 断网格是否与线段相交。
[0073] 1.2.2空白域检测
[0074]空白域是流场中由流线构成的空白区域。在基于网格的算法中,空白域是连续的 未标记网格的集合,其边界是已被标记的网格,所以空白域的大小由构成空白域的网格的 数量决定。在求取空白域时,可以由一点出发,搜索其相邻的未标记网格,因此求解空白域 的过程也可以看作一个搜索问题。本文中使用采用广度优先搜索来检测空白域。在三维流 场中,由于流线无法将三维流场分为多个空白域,因此在三维流场中,本文改进广度优先搜 索算法。
[0075] 1.2.3种子点选取
[0076] 在二维流场中,使用空白域的几何中心作为新的种子点坐标,若生成的坐标在该 空白域内,我们将其作为新的种子点然后生成流线。若生成的坐标并不在该空白域内,我们 在该点做X方向和y方向的平行线,求解两线与空白域相交的线段,比较两个方向上线段的 长度,选择长度较长的线段中点作为新的种子点。图1中显示了二维流场在空白域填充后的 可视化结果。绘制结果可以看出基于空白域的绘制结果很好地填充了空白区域,绘制结果 中流线分布均匀,并且绘制结果显示出了整个流场的大致结构特征。
[0077] 在三维流场中,在检测到空白域后,我们将空白域的几何中心作为种子点绘制流 线,同二维类似的是,当空白域的几何中心不在空白域内,我们将在x,y,z三个方向做平行 于坐标轴的直线,然后检测每个方向直线与空白域相交线段的长度,选择三个方向中最长 线段的中点作为种子点生成流线。
[0078] 基于网格的空白域填充算法可以根据预定义的网格大小均匀的绘制出整个流场, 网格的大小与绘制出的流场密度有关。
[0079] 2.基于流线属性的流线筛选
[0080] 在完成流线生成之后,我们可以得到较低层次的流场可视化结果,然而二维可视 化结果中流线太密,可能不符合用户期望,同时三维可视化结果中流线分布密集,相互遮挡 严重,因此本文在这部分介绍多层次的密度显示,即如何利用流线属性对流线进行筛选,产 生更好的可视化效果。
[0081] 2.1流线属性
[0082] 流线简化是流线可视化中一个常见的子方向,其主要通过对生成的流线属性进行 比较,然后从中选择部分流线作为最后的可视化结果。常用的流线属性有流线的长度、流线 间距离、流线的线性熵值等。本文中主要使用流线长度,流线与流场间距离这两种属性。
[0083] 流线长度即曲线的长度,本文中流线通过一个点序列来表示,流线的长度可以用 相邻点的距离和来表示。本文使用流线长度来剔除一些过短的流线。二维流场上流线与流 场间距离Is计算如下:
[0084] (2)
[0085] (g)
[0086]
[0087] 上述公式中,11;。1
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1