国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

顏色與點(diǎn)圖標(biāo)方法的可視化

2015-03-16 09:53:37黃晶慧
電腦知識與技術(shù) 2015年1期

黃晶慧

摘要:該文將顏色映射與點(diǎn)圖標(biāo)映射方法相結(jié)合,最終實(shí)現(xiàn)了旋風(fēng)分離器速度場可視化。為尋求設(shè)備中的物質(zhì)的運(yùn)動(dòng)規(guī)律,需要將速度場表示出來。點(diǎn)圖標(biāo)方法是最簡單最直觀的矢量場映射方法,雖然矢量的方向可以被直觀、準(zhǔn)確的表示,但用圖標(biāo)的大小表示矢量的大小,極易產(chǎn)生視覺混亂,在旋風(fēng)分離器內(nèi)的速度場可視化中,將點(diǎn)圖標(biāo)映射方法與顏色映射相結(jié)合,使用VC++與OpenGL成功實(shí)現(xiàn)了旋風(fēng)分離器內(nèi)的速度場可視化。

關(guān)鍵詞:點(diǎn)圖標(biāo);顏色映射;旋風(fēng)分離器; 矢量場可視化

中圖分類號:TP391 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2015)01-0153-04

Visualization of Both Arrow Plot Mapping and Color Mapping

HUANG Jing-hui

(Computer Science Department of Fujian Radio&TV University, Fuzhou 350003, China)

Abstract: This paper focuses on intensively study in Visualization of Vector Field in order to realize Vector Field Visualization of the Cyclone Separator. The algorithms that combining both arrow plot mapping and color mapping was applied to realize Velocity field Visualization of The Cyclone Separator. In order to find the rule of flow ,velocity vector should be imaged. The most simple and obvious way to visualize a velocity field is arrow plot mapping arithmetic. However, the output imaging was confusable. Arrow plot mapping arithmetic with color was applied to Velocity field simulation of The Cyclone Separator. Using VC++ and OpenGL the perfect output imaging was obtained.

Key words: Arrow Plot; Color Mapping;Cyclone Separator; Velocity Field Visualization

1 概述

基于幾何圖形的點(diǎn)圖標(biāo)映射方法是傳統(tǒng)的點(diǎn)圖標(biāo)映射方法,這種方法中,矢量的大小和方向是由帶有大小和方向的圖形進(jìn)行映射的,另外,為了增加真實(shí)感,可以使用光照或深度顯示的方法進(jìn)行處理?;趲缀螆D形的映射方法在各種矢量場可視化方法中是最簡單的。其中,常用的幾何圖形有刺狀圖標(biāo)、有向線段、椎體等等。這些圖形的方向與矢量的方向相同,矢量的大小與圖形的長度成正比。幾何圖形的映射方法只能應(yīng)用于二維矢量場,由于用于表示三維矢量場時(shí),方向上會存在二義性(因?yàn)榇朔N方法沒有法失、光照等三維相關(guān)信息而只有投影)。針對這種情況,我們用圓錐實(shí)體來表示矢量可以很好的解決。其中,錐頂?shù)姆较虮硎臼噶康姆较?,錐底圓心為采樣點(diǎn)的坐標(biāo)位置,再加上光照效果就可以很好的將矢量的三維方向信息表示出來。圓錐底面的半徑用來表示矢量的大小。這樣整個(gè)矢量場會充斥著大小差異不同的圓錐,使人們視覺上產(chǎn)生混亂的感覺。所以,雖然這種方法可以消除方向的二義性,但無法細(xì)致全面的反應(yīng)出整個(gè)矢量場。

2 基于顏色的點(diǎn)圖標(biāo)映射方法

旋風(fēng)分離器是廣泛使用的一種設(shè)備,其內(nèi)部是氣固兩相高速旋轉(zhuǎn)的流體,它的作用是實(shí)現(xiàn)流體的氣固兩相分離。為了尋求旋風(fēng)分離器內(nèi)部流體的運(yùn)動(dòng)規(guī)律,一個(gè)有效的方法就是將分離器內(nèi)部流體的速度矢量繪制出來。傳統(tǒng)的圖形繪制方法無法直觀形象地表示流場,是因?yàn)閷⑺俣仁噶浚▓鲋幸唤孛娴氖噶繑?shù)據(jù))在切向、軸向、徑向方向的分量單獨(dú)繪制。

顏色是最容易被人們理解的元素之一,人眼大約可以對128種色彩和35萬種顏色進(jìn)行分辨,所以在很多可視化中,顏色的作用是非常重要的,在矢量場可視化中,可以將矢量的大小映射為顏色值,但矢量的方向信息要如何表示才不會丟失呢?我們將顏色映射方法與點(diǎn)圖標(biāo)方法相結(jié)合,用顏色值表示矢量大小,用點(diǎn)圖標(biāo)的方向表示矢量的方向。運(yùn)用OpenGL對矢量設(shè)置了光照和材質(zhì),產(chǎn)生出逼真的易懂的三維立體圖標(biāo),最終清晰細(xì)致的可視出整個(gè)矢量場。

2.1 圖元的選取及映射

矢量的方向由實(shí)體箭頭的方向表示,使用實(shí)體圓柱與實(shí)體圓錐組合成為實(shí)體箭頭作為矢量場可視化的圖元,實(shí)體箭頭的顏色值映射為矢量的大小。如圖1所示,程序中相應(yīng)的是Carrow類的定義。

2.2 顏色映射算法

選取紅色(Red)、黃色(Yellow)、綠色(Green)、青色(Cyan)、藍(lán)色(Blue),這5種基本顏色的RGB彩色模型。為了表示矢量的大小,我們采用線性插值方法,在5種基色之間得到了30種不同的過渡顏色,將這些過渡顏色映射為速度矢量的大小。最大矢量值[Vmax]對應(yīng)為紅色,最小矢量值[Vmin]對應(yīng)為藍(lán)色,如圖2所示,為了能夠準(zhǔn)確的表示出不同矢量在矢量場的具體分布情況,我們使用了五種基本顏色之間的跨度來表示具體的矢量,例如純藍(lán)與純綠之間的跨度,對于采集的數(shù)據(jù)比較密集的空間,為了可以準(zhǔn)確的將采集的差別細(xì)微的數(shù)據(jù)表示為可以人眼辨別的顏色值的變化,我們定義的顏色跨度要盡量小。顏色映射的步驟如下:

首先,在選取基色的基礎(chǔ)上,根據(jù)采集的實(shí)際數(shù)據(jù)確定顏色跨度,生成過渡顏色。

然后,計(jì)算與顏色域值對應(yīng)的矢量數(shù)據(jù)域值。場中最小的矢量值[Vmin](即[VBlue])以及最大的矢量值[Vmax](即[VRed]),分別對應(yīng)顏色值[CBlue]與[CRed],然后插值得出[CCyan]、[CGreen]、[CYellow]對應(yīng)的矢量閾值[VCyan]、[VGreen]、[VYellow]。

計(jì)算場中每點(diǎn)的顏色值C

2.3 具體實(shí)現(xiàn)步驟

顏色與點(diǎn)圖標(biāo)方法的具體實(shí)現(xiàn)包括:箭頭類的定義;讀取矢量場采樣點(diǎn)矢量數(shù)據(jù)文件并給賦值;顏色映射算法實(shí)現(xiàn);旋轉(zhuǎn)參數(shù)的計(jì)算與傳遞;箭頭的最終構(gòu)造完成;速度場所有采樣點(diǎn)繪制;最終結(jié)果展示。

關(guān)鍵代碼:

//箭頭類的定義

class CArrow : public CObject

{public:

double vt,vz,length,angle;//切向和軸向的速度分量,速度矢量大小,傾斜角度

CArrow();

void SetValue1(float X,float Y,double VT,double VZ);

virtual ~CArrow();

};

//矢量數(shù)據(jù)讀取與賦值

fp1=fopen("D:\\VT1B.dat","r");

fp2=fopen("D:\\VZ1B.dat","r");

if(fp1!=NULL&&fp2!=NULL)//給切向速度賦值

{for( i=0;i

{…}

fclose(fp1);

for( i=0;i

{…}

if(length>=0.27)// 顏色映射算法實(shí)現(xiàn)

glColor3f(1.0,1.0-(length-0.27)/0.13,0.0);

else

if(length>=0.2)

glColor3f((length-0.2)/0.07,1.0,0.0);

// 旋轉(zhuǎn)參數(shù)的計(jì)算與傳遞

static GLfloat m_y=0.0f;

glRotatef(m_y,0.0f,-1.0f,0.0f);

y-=vz/200.0;

glTranslatef(0.0f,y,0.0f);

if(y<-1.2)

y=1.2;//*/

if(m_rotation){

m_y+=0.005;//箭頭的旋轉(zhuǎn)

}

//箭頭的最終構(gòu)造完成

glPushMatrix();

glTranslatef(0.0f,0.25-1.0,0.0f);//將圓柱下端移動(dòng)到原點(diǎn)

auxSolidCylinder(0.008,0.25);//繪制圓柱

glPopMatrix();

auxSolidCone(0.035,0.05);//繪制圓椎

glPopMatrix();

//所有采樣點(diǎn)繪制

int CShowerView::OnCreate(LPCREATESTRUCT lpCreateStruct)

{if (CView::OnCreate(lpCreateStruct) == -1)

return -1;

m_pDC = new CClientDC(this); //初始化OpenGL和設(shè)置定時(shí)器

SetTimer(1, 20, NULL);

InitializeOpenGL(m_pDC);

if (pDoc→endread)

{//最終結(jié)果展示

int num;

for(num=0;num<10;num++)

{glVertex3f(-2.2,1.31-num*0.09,0.0);

glColor3f(1.0,(float)(num/9.0),0.0);

glVertex3f(-1.9,1.31-num*0.09,0.0);

}

glEnd();

for(num=0;num<6;num++)

{glVertex3f(-2.2,-0.04-num*0.09,0.0);

glColor3f(0.0,1.0,(float)(num/5.0));

glVertex3f(-1.9,-0.04-num*0.09,0.0);

}

glEnd();

for(num=0;num<9;num++)

{glVertex3f(-2.2,-0.58-num*0.09,0.0);

glColor3f(0.0,(1.0-(float)num/8.0),1.0);

glVertex3f(-1.9,-0.58-num*0.09,0.0);

}

glEnd();

::SwapBuffers(m_pDC→GetSafeHdc()); //渲染場景

2.4 實(shí)驗(yàn)結(jié)果

將基于顏色映射的矢量場映射方法應(yīng)用于旋風(fēng)分離器中的速度矢量場,所得可視化結(jié)果如圖3所示,該結(jié)果圖像直觀形象地表示出了速度矢量場中一截面上采樣點(diǎn)的速度方向及大小信息。

3 總結(jié)與展望

本文將顏色映射與點(diǎn)圖標(biāo)映射方法相結(jié)合對旋風(fēng)分離器速度場可視化進(jìn)行了研究,最終清晰細(xì)致地可視出了旋風(fēng)分離器內(nèi)的速度場。實(shí)現(xiàn)了旋風(fēng)分離器內(nèi)的速度場可視化,借助三維矢量場可視化方法,使用OpenGL設(shè)置光照和材質(zhì),產(chǎn)生具有真實(shí)感的三維立體圖標(biāo),最終可視出了旋風(fēng)分離器內(nèi)的速度場。動(dòng)態(tài)可視化是當(dāng)今矢量場可視化的一個(gè)發(fā)展趨勢,今后的一個(gè)研究目標(biāo)之一就是矢量場動(dòng)態(tài)可視化方法的研究,使其成為我們科研和工程建設(shè)中有力的工具。

參考文獻(xiàn):

[1] B. Cabral and L. C. Leedom. Imaging vector ?elds using line integral convolution. In Proceedings of ACM SIGGRAPH 09, pages 263-270, 2009.

[2] 5. W. Cai and P.-A. Heng. Principal stream surfaces. In IEEE Visualization 10, pages 75-80,2010.

[3] M. W. Hirsch. Differential Topology, 6th Ed.Berlin, Springer, 1997.

[4] S. Lang. Differential and Riemannian Manifolds,3rd Ed. New York, Springer, 1995.

[5] A. Sundquist. Dynamic line integral convolution for visualizing stream-line evolution. IEEE Transactions on Visualization and Computer Graphics, 9(8):273-282, 2003.

[6] J. Grant, G. Erlebacher, and J. J. OBrien.Case study: visualization of thermoclines in the ocean using Lagrangian-Eulerian timesurfaces. In IEEE Visualization 02, pages 529-532, 2002.

[7] B. Jobard, G. Erlebacher, and M. Hussaini.Lagrangian—Eulerian advection for unsteady ?ow visualization. IEEE Transactions on Visualization and Computer Graphics, 8(3):211-222,2002.

[8] R. Blake and S.-H. Lee. Temporal structure in the input to vision can promote spatial grouping. In Biologically Motivated Computer Vision 2000, pages 635-653, 2000.

[9] 李海生. 三維數(shù)據(jù)場可視化的帶權(quán)限定Delaunay三角化的理論和應(yīng)用研究:[博士學(xué)位論文]. 北京航空航天大學(xué),北京:2002.

[10] A. Sundquist. Dynamic line integral convolution for visualizing stream-line evolution. IEEE Transactions on Visualization and Computer Graphics, 9(8):273-282, 2003.

[11] 李海生,牛文杰,楊欽,陳其明. 矢量場可視化的研究現(xiàn)狀與發(fā)展趨勢[J].計(jì)算機(jī)應(yīng)用研究, 2001(8).

长垣县| 台江县| 桐城市| 宣化县| 澄城县| 张家界市| 沁源县| 博罗县| 莎车县| 中山市| 合水县| 女性| 上杭县| 应城市| 宜良县| 鄯善县| 深泽县| 白河县| 尉犁县| 大关县| 崇仁县| 仪征市| 额尔古纳市| 乐山市| 芦溪县| 博乐市| 南康市| 麻阳| 中江县| 清丰县| 庆阳市| 双鸭山市| 留坝县| 长治县| 海阳市| 朝阳区| 台前县| 巴中市| 叙永县| 通城县| 芜湖县|