CN105844036A - 一种基于随机粒子的涡旋流场动态可视化方法 - Google Patents
一种基于随机粒子的涡旋流场动态可视化方法 Download PDFInfo
- Publication number
- CN105844036A CN105844036A CN201610191465.9A CN201610191465A CN105844036A CN 105844036 A CN105844036 A CN 105844036A CN 201610191465 A CN201610191465 A CN 201610191465A CN 105844036 A CN105844036 A CN 105844036A
- Authority
- CN
- China
- Prior art keywords
- particle
- random
- flow field
- function
- grid
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/10—Geometric CAD
- G06F30/18—Network design, e.g. design based on topological or interconnect aspects of utility systems, piping, heating ventilation air conditioning [HVAC] or cabling
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Geometry (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于随机粒子的涡旋流场动态可视化方法,通过在流场随机生成粒子,并赋予粒子生命长度,让粒子随着流场速度矢量的变化而不断运动形成移动轨迹,表现涡旋闭合流场的流线特征。本发明算法简单、计算速度快,视觉效果生动,适用于涡旋等其他流场现象的动态可视化。
Description
技术领域
本发明涉及一种基于随机粒子的涡旋流场动态可视化方法,属于海洋数据可视化领域。
背景技术
流场是海洋研究中重要的物理场,如大气中的风,海洋中的流等都是众多海洋动态现象(涡旋、潮汐、浪、锋面等)的重要驱动力。流场数据通常采用向量场的数据结构,记录每个采样点上水平U(纬向)和垂直V(经向)方向上的速率。由于流场数据本身并不能直观地反映流场每个位置上的速度大小和方向,因此如何有效生动地对流场数据进行可视化,表现中尺度涡在流场上的闭合环流特征,对于认识和研究涡旋的演变演化过程具有重要的研究意义。
目前,流场矢量数据可视化的方法主要有四种(陈为等,2013):1)标记法,通常采用带箭头的线段来表示速度的方向和大小;2)积分曲线法,采用各种积分曲线对流场中的迹线、流线和脉线进行可视化;3)纹理法,采用点噪声法(Van Wijk,1991)或线积分卷积(Cabral,1993)生成流场的纹理特征;4)拓扑法,通过提取和标绘几何或拓扑特征,如临界点、分界线和拓扑区域,来视觉化流场数据。
现有的这些方法,由简到繁,从不同的生动程度表现了流场矢量数据,但却难以让用户直观地感受到流场本身的运动变化,特别是涡旋内部流场闭合环流的特征。为此,本发明提出一种基于随机粒子的涡旋流场动态可视化方法,通过在空间上随机生成有限数量的粒子,让粒子随着流场的空间变化而不断运动,来模拟表现涡旋闭合流场的动态特征。
发明内容
本发明解决的技术问题:提供一种基于随机粒子的涡旋流场动态可视化方法,该方法通过在空间上随机产生有限数量的虚拟粒子,让粒子跟随流场的空间变化而不断的运动,形成逐渐消失的尾迹效果,来反映流场矢量数据的动态特征,特别是涡旋内部闭合流场的特征,本发明简单、计算速度快,视觉效果生动,适用于涡旋等其他流场现象的动态可视化。
本发明的技术方案:一种基于随机粒子的涡旋流场动态可视化方法包括如下步骤:
步骤1、根据实际用户需求,在空间上生成N*N的规则格网,遍历每个格网;N*N的规则格网,可以取100*100;
步骤2、在格网内随机生成一个粒子,并赋予粒子指定或随机的寿命值;
步骤3、根据粒子所在的空间位置(x,y),搜索流场矢量数据中最邻近的四个采样点,通过双线性插值内插出粒子的U、V速率值;
步骤4、在定时执行函数(如JavaScript的setTimeout()函数)中,设定帧率(秒/帧),并依序执行以下函数:
●渐隐(fadeout)函数,对之前所绘制的粒子轨迹作微透明化处理;
●演进(evolve)函数,若粒子已到自身的寿命长度,则重新在粒子生成的格网内随机产生一个新的粒子;否则,根据帧率R、U、V计算粒子下一个时刻的空间位置,并根据新的空间位置按步骤3更新粒子的U、V速度值,最后粒子年龄值加一,更新粒子速度值的计算如下:
xt=x+U*R
yt=y+V*R
其中,(xt,yt)为下个时刻粒子的位置坐标,(x,y)为粒子当前位置的坐标,U和V分别是当前粒子所在流场位置的水平和垂直速率值,R为帧率;
●绘制(draw)函数,绘制从当前位置到下一时刻位置的直线,更新粒子的空间位置。
所述步骤2中赋予粒子指定或随机的寿命值的计算如下,
x=x0+size*random();
y=y0+size*random();
age=max_age*random();
其中,(x,y)为粒子生成的随机位置,(x0,y0)为格网的起始点位置,size为格网的长度大小,age为粒子的随机寿命值,max_age为用户设定的粒子最大生命值,random()为产生[0,1]区间任意值的随机函数。
所述步骤3中通过双线性插值内插出粒子的U、V速率值如下,
dy=P00.y-P10.y
dx=P01.x-P00.x
v0=P10.z*(P00.y-y)/dy+P00.z*(y–P10.y)/dy
v1=P11.z*(P01.y-y)/dy+P01.z*(y–P11.y)/dy
v=v0*(P01.x-x)/dx+v1*(x–P00.x)/dx
其中,P00,P10,P01,P11为最邻近的四个采样点,每个采样点均含有(x,y,z)三个属性值。P00.x,P00.y即采样点P00的x,y坐标值,P00.z即采样点P00的U或V速率值。插值点的坐标由x,y单独表示。dx,dy分别表示四个采样点在x,y方向上的间隔距离。v0表示P00和P10在y轴上的速率线性插值分量,v1表示P01和P11在y轴上的速率线性插值分量,v表示v0和v1在x轴上的速率线性插值。
所述步骤4中定时执行函数中依序执行渐隐(fadeout)函数对粒子过往轨迹消隐处理,演进(evolve)函数更新粒子位置及生命属性,和绘制(draw)函数更新粒子移动轨迹。
本发明与现有技术相比的优点在于:
(1)本发明利用随机生成的粒子模拟其在流场数据中的流动,从而反映流场的速度分布,与传统方法相比,更好地体现了流场的运动性特征,视觉效果更佳。
(2)本发明通过在空间上随机产生有限数量的虚拟粒子,让粒子跟随流场的空间变化而不断的运动,形成逐渐消失的尾迹效果,来反映流场矢量数据的动态特征,特别是涡旋内部闭合流场的特征,,本发明简单、计算速度快,视觉效果生动,适用于涡旋等其他流场现象的动态可视化。
附图说明
图1为本发明的主流程图;
图2为双线性内插方法示意图。
具体实施方式
如图1所示,本发明的具体实施步骤如下:
步骤1、根据实际用户需求,在空间上生成N*N的规则格网,遍历每个格网。
步骤2、在格网内随机生成一个粒子,并赋予粒子指定或随机的寿命值,计算如下,
x=x0+size*random();
y=y0+size*random();
age=max_age*random();
其中,(x,y)为粒子生成的随机位置,(x0,y0)为格网的起始点位置,size为格网的长度大小,age为粒子的随机寿命值,max_age为用户设定的粒子最大生命值,random()为产生[0,1]区间任意值的随机函数。
步骤3、根据粒子所在的空间位置(x,y),搜索流场矢量数据中最邻近的四个采样点P00、P01、P10、P11,如图2所示,通过双线性插值内插出粒子的水平速度分量U和垂直速度分量V,计算如下,
dy=P00.y-P10.y
dx=P01.x-P00.x
z0=P10.z*(P00.y-y)/dy+P00.z*(y–P10.y)/dy
z1=P11.z*(P01.y-y)/dy+P01.z*(y–P11.y)/dy
z=z0*(P01.x-x)/dx+z1*(x–P00.x)/dx
其中,P00,P10,P01,P11为最邻近的四个采样点,每个采样点均含有(x,y,z)三个属性值。P00.x,P00.y即采样点P00的x,y坐标值,P00.z即采样点P00的U或V速率值。插值点的坐标由x,y单独表示。dx,dy分别表示四个采样点在x,y方向上的间隔距离。z0表示P00和P10在y轴上的速率线性插值分量,z1表示P01和P11在y轴上的速率线性插值分量,z表示z0和z1在x轴上的速率线性插值。
步骤4、在定时执行函数(如JavaScript的setTimeout()函数)中,设定帧率(秒/帧)R,并依序执行以下函数:
●渐隐(fadeout)函数,对之前所绘制的粒子轨迹做微透明化处理,以HTML实现为例,粒子轨迹均绘制在Canvas对象上,在更新粒子轨迹(即粒子新的位置)之前,在Canvas上放置相同空间范围的白色填充的透明化矩形,透明度可设为90%,使之前绘制的粒子轨迹颜色减退,随着透明化矩形的不停叠放,此前绘制的粒子轨迹将随着透明度的降低而逐渐消隐至无;
●演进(evolve)函数,若粒子已到自身的寿命长度,则采用步骤2的方法重新在粒子生成的格网内随机产生一个新的粒子;否则,根据帧率R、U、V计算粒子下一个时刻的空间位置,并根据新的空间位置按步骤3更新粒子的U、V速度值,最后粒子年龄值加一,更新粒子速度值的计算如下:
xt=x+U*R
yt=y+V*R
其中,(xt,yt)为下个时刻粒子的位置坐标,(x,y)为粒子当前位置的坐标,U和V分别是当前粒子所在流场位置的水平和垂直速率值;
●绘制(draw)函数,绘制从当前位置到下一时刻位置的直线,更新粒子的空间位置。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本邻域的技术人员来说,本发明可以更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。
Claims (5)
1.一种基于随机粒子的涡旋流场动态可视化方法,其特征在于步骤如下:
步骤1、根据实际用户需求,在空间上生成N*N的规则格网,遍历每个格网;
步骤2、在格网内随机生成一个粒子,并赋予粒子指定或随机的寿命值;
步骤3、根据粒子所在的空间位置(x,y),搜索流场矢量数据中最邻近的四个采样点,通过双线性插值内插出粒子的U、V速率值;
步骤4、在定时执行函数中,设定帧率,并依序执行以下函数:
●渐隐(fadeout)函数,对所绘制的粒子轨迹作微透明化处理;
●演进(evolve)函数,若粒子已到自身的寿命长度,则重新在粒子生成的格网内随机产生一个新的粒子;否则,根据帧率、U、V计算粒子下一个时刻的空间位置,并根据新的空间位置更新粒子的U、V速度值,并且年龄值加一;
●绘制(draw)函数,绘制从当前位置到下一时刻位置的直线,更新粒子的空间位置。
2.根据权利要求1所述的基于随机粒子的涡旋流场动态可视化方法,其特征在于:所述步骤2中赋予粒子指定或随机的寿命值的计算如下,
x=x0+size*random();
y=y0+size*random();
age=max_age*random();
其中,(x,y)为粒子生成的随机位置,(x0,y0)为格网的起始点位置,size为格网的长度大小,age为粒子的随机寿命值,max_age为用户设定的粒子最大生命值,random()为产生[0,1]区间任意值的随机函数。
3.根据权利要求1所述的基于随机粒子的涡旋流场动态可视化方法,其特征在于:所述步骤3中通过双线性插值内插出粒子的U、V速率值如下,
dy=P00.y-P10.y
dx=P01.x-P00.x
v0=P10.z*(P00.y-y)/dy+P00.z*(y–P10.y)/dy
v1=P11.z*(P01.y-y)/dy+P01.z*(y–P11.y)/dy
v=v0*(P01.x-x)/dx+v1*(x–P00.x)/dx
其中,P00,P10,P01,P11为最邻近的四个采样点,每个采样点均含有(x,y,z)三个属性值;P00.x,P00.y即采样点P00的x,y坐标值,P00.z即采样点P00的U或V速率值;插值点的坐标由x,y单独表示;dx,dy分别表示四个采样点在x,y方向上的间隔距离;v0表示P00和P10在y轴上的速率线性插值分量,v1表示P01和P11在y轴上的速率线性插值分量,v表示v0和v1在x轴上的速率线性插值。
4.根据权利要求1所述的基于随机粒子的涡旋流场动态可视化方法,其特征在于:所述步骤4中定时执行函数中依序执行渐隐(fadeout)函数对粒子过往轨迹消隐处理,演进(evolve)函数更新粒子位置及生命属性,和绘制(draw)函数更新粒子移动轨迹。
5.根据权利要求1所述的基于随机粒子的涡旋流场动态可视化方法,其特征在于:所述步骤1中N*N的规则格网可以取100*100。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610191465.9A CN105844036B (zh) | 2016-03-30 | 2016-03-30 | 一种基于随机粒子的涡旋流场动态可视化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610191465.9A CN105844036B (zh) | 2016-03-30 | 2016-03-30 | 一种基于随机粒子的涡旋流场动态可视化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105844036A true CN105844036A (zh) | 2016-08-10 |
CN105844036B CN105844036B (zh) | 2018-12-21 |
Family
ID=56584088
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610191465.9A Active CN105844036B (zh) | 2016-03-30 | 2016-03-30 | 一种基于随机粒子的涡旋流场动态可视化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105844036B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110008387A (zh) * | 2019-04-16 | 2019-07-12 | 成都四方伟业软件股份有限公司 | 流场可视化实现方法、装置及电子设备 |
CN113850894A (zh) * | 2021-11-29 | 2021-12-28 | 中国海洋大学 | 一种基于Leaflet的全球涡旋轨迹动态可视化方法 |
CN115797491A (zh) * | 2022-12-06 | 2023-03-14 | 中国水利水电科学研究院 | 一种数字孪生流域二元水循环流场的生成与渲染方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103226804A (zh) * | 2013-04-12 | 2013-07-31 | 山东大学 | 一种基于流线重心Voronoi图的流场可视化方法 |
CN104657333A (zh) * | 2015-02-11 | 2015-05-27 | 中国海洋大学 | 基于gpu的动态二维矢量场流线可视化算法 |
CN104867186A (zh) * | 2015-04-29 | 2015-08-26 | 中国海洋大学 | 基于gpu的可交互海洋三维流场动态可视化算法 |
-
2016
- 2016-03-30 CN CN201610191465.9A patent/CN105844036B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103226804A (zh) * | 2013-04-12 | 2013-07-31 | 山东大学 | 一种基于流线重心Voronoi图的流场可视化方法 |
CN104657333A (zh) * | 2015-02-11 | 2015-05-27 | 中国海洋大学 | 基于gpu的动态二维矢量场流线可视化算法 |
CN104867186A (zh) * | 2015-04-29 | 2015-08-26 | 中国海洋大学 | 基于gpu的可交互海洋三维流场动态可视化算法 |
Non-Patent Citations (2)
Title |
---|
JENS GRUGER等: "A particle system for interactive visualization of 3D flows", 《IEEE TRANSACTIONS ON VISUALIZATION AND COMPUTER GRAPHICS》 * |
吴晓莉等: "基于粒子纹理融合的流场可视化方法", 《计算机应用》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110008387A (zh) * | 2019-04-16 | 2019-07-12 | 成都四方伟业软件股份有限公司 | 流场可视化实现方法、装置及电子设备 |
CN113850894A (zh) * | 2021-11-29 | 2021-12-28 | 中国海洋大学 | 一种基于Leaflet的全球涡旋轨迹动态可视化方法 |
CN115797491A (zh) * | 2022-12-06 | 2023-03-14 | 中国水利水电科学研究院 | 一种数字孪生流域二元水循环流场的生成与渲染方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105844036B (zh) | 2018-12-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8154544B1 (en) | User specified contact deformations for computer graphics | |
Selle et al. | Cartoon rendering of smoke animations | |
CN105844036A (zh) | 一种基于随机粒子的涡旋流场动态可视化方法 | |
CN106952329A (zh) | 基于Unity3D与NGUI的粒子特效编辑方法及系统 | |
CN109063279A (zh) | 基于粒子流轨迹追踪算法的三维空间风场动态模拟方法 | |
CN103700134A (zh) | 基于可控制纹理烘焙的三维矢量模型实时光影延迟着色渲染方法 | |
CN103337093A (zh) | 一种基于Unity3D着色器实现三维机房实时温场效果的方法 | |
CN104778737B (zh) | 基于gpu的大规模落叶实时渲染方法 | |
CN104463937B (zh) | 基于不规则物体的动画生成方法及装置 | |
CN106846474B (zh) | 基于时序特征和粒子系统的WebGIS时空过程模拟方法 | |
CN105184843A (zh) | 一种基于OpenSceneGraph的三维动画制作方法 | |
Chen et al. | A heuristic approach to the simulation of water drops and flows on glass panes | |
CN110400366A (zh) | 一种基于OpenGL的实时洪水灾害可视化仿真方法 | |
CN110111425A (zh) | 3d字体的斜角生成方法、介质、设备及装置 | |
CN104318591B (zh) | 一种带边界平面流场的动态绘制方法 | |
CN111563963B (zh) | 一种龙卷风气象模拟方法、智能终端及存储介质 | |
CN104657333A (zh) | 基于gpu的动态二维矢量场流线可视化算法 | |
CN115859755B (zh) | 一种定常流场矢量数据的可视化方法、装置、设备及介质 | |
CN104537704A (zh) | 一种鸟类躯干模型的羽毛实时动态生成方法 | |
Fan et al. | Real-time simulation of rain and snow in virtual environment | |
CN109002653A (zh) | 基于带符号距离函数的海上围油栏运动模拟及离散方法 | |
Luo et al. | GPU-based real-time virtual reality modeling and simulation of seashore | |
CN104102792B (zh) | 一种充填开采的仿真实现方法 | |
KR101267571B1 (ko) | 자연 식물의 애니메이션 표시방법 | |
CN110490957B (zh) | 物体的变形动画的3d特效展示方法、装置及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |