一种多层次流场可视化方法与流程

文档序号:11830873阅读:265来源:国知局
一种多层次流场可视化方法与流程
本发明是关于多层次流场可视化的方法,更具体地说,是基于特征信息种子点选取的多层次流场可视化。
背景技术
:向量场可视化是科学可视化的重要组成部分,而流场是向量场的一个重要代表,因此流场可视化同样是科学可视化中的重要部分。在多种流场可视化方法中,以流线的方式表示流场尤其常见。流线,通常是从某个种子点出发,然后沿着该点向前向后,通过流场积分得到下一个点,最后连接所有生成的点而组成。这样如何来放置种子点就成了重中之重,现有许多研究种子点放置的方法,但是均存在缺陷。最简单的方法是随机放置种子点,该方法首先要设置种子点总数,然后利用计算机随机函数生成随机坐标。该方法思想简单且容易实现,但是最大的问题是无法均匀放置种子点。在“AnInformation-TheoreticFrameworkforFlowVisualization,IEEE,2010”中公开了一种基于信息熵的种子点放置方法,该方法选取信息量大的地方,由于信息量计算是以向量角度为基础统计概率模型,因此该方法没有考虑到流场的拓扑结构。图1是一份海洋数据采用该方法放置种子点的流场示意图,图中有几处漩涡没有被绘制出来。在“Aflow-guidedstreamlineseedingstrategy,InVis’00:ProceedingsoftheIEEEVisualization2000”中公开了一种流场拓扑引导的放置方法,该方法充分考虑了流场的拓扑结构,而缺点在于,临界点的查找计算复杂。技术实现要素:本发明的目的是克服现有算法的不足,提供了一种改进的算法。该算法可以更加准确的放置种子点,并运用LOD多层次细节化思想,清晰地展示流场的局部细节。本发明通过下述技术方案予以实现:对流场进行网格划分,计算各个子区域的信息熵;根据信息熵的值选择子区域,检测所选子区域是否存在临界点:如果存在临界点,在所选子区域根据临界点特征放置种子点;如果不存在临界点,在所取子区域中心处以规则四边形方式撒点。基于种子点的选取绘制流场流线图:把流场中所取种子点坐标转化为球面坐标,根据球面坐标确定屏幕像素坐标,利用屏幕坐标绘制流场流线图。基于已绘制出的流场流线图,选定需要进行多层次可视化的流场流线图区域,缩小流场网格划分的距离,计算重新划分的各个子区域的信息熵,根据信息熵的值选择子区域,检测所选子区域是否存在临界点,根据临界点的检测情况,在所选子区域放置种子点,基于种子点的选取绘制出多层次流场流线图。本发明实施例与现有方法相比较有如下有益效果:1.更加准确和清晰地绘制出流场特征;2.既可从宏观上观察流场,也可进入局部,观察流场细节。附图说明图1是一实施例采用现有算法放置种子点的流场示意图;图2是本发明采用同一实施例放置种子点的流场示意图;图3是本发明采用同一实施例的球面流场示意图;图4是放大图3呈现出的局部流场示意图;图5是放大图4呈现出的局部流场示意图。具体实施方式下面结合说明书附图对本发明作进一步描述。图2是本发明采用同一实施例放置种子点的流场示意图。通过图1与图2的对比,可以观察到,图1中没有显示出的漩涡在图2中能清晰地看到。本发明实施例描述的改进算法具体步骤如下:1.对流场进行网格划分:令step为X,Y,Z坐标的扫描跨度,M,N,L分别为X,Y,Z轴划分的网格数。如果扫描到坐标轴的末尾所剩下长度不足一个step,则按照坐标结尾作为最后一个子区域的结束。2.计算子区域信息熵对流场进行扫描,计算各个子区域的信息熵,选择合适的信息熵子区域:子区域所在流场的每个点上,都有一个方向向量也就会有一个角度,2D的情况将0-360度分割成60份,3D的情况将向量单元球面分割成360份:numOfBins[i],i=0,1,2,…,M×N×LnumOfBins[i]为子区域统计分布中的条形柱的数量,也就是离散概率统计中自变量的状态值的数量,将子区域中每个点上方向向量的角度映射到这些状态值上,从而形成了概率统计模型。令Bins[i][j],j=0,1,2,…,numOfBins[i]-1为第i个子区域中每个角度分隔段的向量数,那么每个子区域的信息熵为:subEntropy[i]=Σj=0numOfBins[i]-1Pj×log2(1Pj),]]>其中:Pj=Bins[i][j]SumBins[i],j=0,1,2,...,numOfBins[i]-1]]>这里SumBins[i]表示子区域i的向量总数。设定factor为子区域的影响因子,取值在(0,1),则:subEntropy[i]≥factor×Max{subEntropy[i],i=0,1,2,…,M×N×L}只有满足上述条件的熵值才是合适的子区域。3、临界点检测检测符合控制条件的信息熵子区域中是否存在临界点,即流场中速度为0的点:设ui,vi,wi,i=0,1,2,…,n-1,如果是二维的情况n=4,三维时n=8,表示每个子区域n个顶点上向量的三个变量,而流场中任意一点的速度:Vk=uk2+vk2+wk2]]>如果Vk=0,则必有uk=vk=wk=0。由根据线性插值的原理,可知:uk=Σi=0n-1aiui,vk=Σi=0n-1aivi,wk=Σi=0n-1aiwi]]>其中ai为三个变量的距离权重,ai∈(0,1)。若ui>0,vi>0,wi>0或ui<0,vi<0,wi<0,则子区域中就必定不存在临界点。根据如上所述,如果子区域符合临界点存在条件,则在子区域根据临界点特征放置种子点。临界点特征包括:漩涡;源点、汇点;鞍点。临界点特征可由临界点处的雅克比矩阵的特征值来确定,雅克比矩阵如下:∂(u,v)∂(x,y)=∂u∂x∂u∂y∂v∂x∂v∂y]]>如果是三维的情况,还需有如果不符合临界点存在条件,则在子区域中心以规则四边形方式撒点。经过上述放置种子点后,剩下的子区域,采用随机放置种子点方式,分别在各个子区域撒上种子点。4.球面坐标下的流场:图3是本发明同一实施例的球面流场示意图,球面坐标下的流场通常应用于地球表面的流场。在地理坐标投影里,可将地球投影为平面的地理坐标。通常情况下,地球表面数据的位置坐标,按照经纬度表示,也就是投影到平面地理坐标上就是一个矩形区域。利用上文所述,在二维直角坐标系下,可以获得种子点经纬度坐标则球面坐标可设为鉴于本实施例为等比设计,系统默认r为1。由于在绘制图形时,计算机屏幕上展示是直角坐标系,因此需要将直角坐标转化为屏幕像素坐标。(1)将球面的坐标转化为直角坐标:该转化后的坐标是可视化系统中的实际坐标,系统在展示的过程中为了更好的表现地球的效果,采用了在球面上贴平面地图的方式,加上拓扑结构后,显示更加逼真。为了实现局部流场图绘制,将可视化系统的实际坐标转化成屏幕的像素坐标。(2)将可视化系统坐标转化为屏幕像素坐标令Dis为视点到屏幕的距离,θ为视角,h为在可视化系统中视口的高 度,w为可视化系统中视口的宽度,H为视口的屏幕像素高度,W为视口的屏幕像素宽度则:tanθ2=h/2Dis]]>得出:h=2×Dis×tanθ2]]>由于:wh=WH]]>得出:w=h×WH]]>如果上一步计算出的种子点的坐标为(x,y,z),则转化为屏幕像素坐标为(x′,y′),其中:x′=xw×W]]>y′=yh×H]]>5.系统交互设计:(1)平移在可视化系统中,平移有两种,一种是平移所画的物体,另一种是平移视点也就是平移相机,在本实施例中系统的平移采用平移相机。设照相机的原始位置为(cx,cy,cz),物体坐标为(x,y,z),平移量为(Δx,Δy,Δz),规定往坐标轴正方向平移时为正,那么相机平移后的坐标为:(cx+Δx,cy+Δy,cz+Δz)物体的平移与相机的平移方向正好是相反的,则物体的坐标为:(x-Δx,y-Δy,z-Δz)(2)缩放图4是放大图3呈现出的流场示意图;图5是放大图4呈现出的流场示意图,所谓近大远小在计算机图形学中是通过透视投影实现的,这里的远近指的是相机距离物体的远近,因此在本实施例中,缩放主要是由相机到物体的距离来决定。根据LOD多层次细节化思想,如果将相机拉近,本实施例将展示流场局部细节信息。因此在计算种子点时,网格划分需要更加的细致,于是网格划分的跨度随着相机的逐渐靠近而缩小,这样在推近相机时,就可以看到更加细节的流场展示。设step为网格划分的跨度,照相到物体的距离为D,经过推近的相机到物体的距离为D′,令step=k是跨度的初始值,那么:step′=D′D×step]]>由于step不可一直缩小或放大,则控制step∈[2,k]。令物体投影的平面为Ax+By+Cz+M=0,相机的位置(cx,cy,cz),那么:D=|A×cx+B×cy+C×cz+M|A2+B2+C2]]>以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1