• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于OSGEarth值域填充問題的一種解決方法

      2020-01-26 05:49鄒韜李雪楊東升華彩成
      電腦知識與技術(shù) 2020年34期
      關(guān)鍵詞:插件

      鄒韜 李雪 楊東升 華彩成

      摘要:利用OSGEarth技術(shù),基于算法模型計(jì)算數(shù)據(jù),利用delaunay三角網(wǎng)逐點(diǎn)插入法,解決任意區(qū)域值域填充技術(shù)難題,對于科學(xué)計(jì)算數(shù)據(jù)可視化分布顯示具有普適性。程序以插件的形式進(jìn)行封裝,具有較高的工程應(yīng)用價(jià)值。

      關(guān)鍵詞:OSGEarth;Delaunay三角網(wǎng);科學(xué)計(jì)算可視化;插件

      中圖分類號:TP311 ? ? ? 文獻(xiàn)標(biāo)識碼:A

      文章編號:1009-3044(2020)34-0020-03

      Abstract:This paper uses OSGEarth technology to calculate data based on algorithm model, and uses Delaunay triangulation point by point insertion method to solve the technical problem of filling arbitrary range. It has universality for the visualization of scientific calculation data distribution. The program is encapsulated in the form of plug-in, which has high engineering application value.

      Keywords: OSGEarth;Delaunay triangulation;visualization of scientific computing;plug-in

      1概述

      所謂“OSGEarth值域填充問題”是指以O(shè)SGEarth平臺為基礎(chǔ),已知任意物理量在空間的離散分布,依據(jù)顏色列表與物理值對應(yīng)關(guān)系,填充該物理量任意分布區(qū)域的問題。是科學(xué)計(jì)算可視化重要課題之一,無可回避。

      1.1 OSGEarth簡介

      OSG是OpenSceneGraph的英文縮寫,它是一個(gè)開放的圖形場景庫,主要為圖形圖像應(yīng)用程序的開發(fā)提供場景管理和圖形渲染優(yōu)化功能。它包括OSG核心庫、OSG工具庫、OSG插件庫,及在此基礎(chǔ)上開發(fā)出來的OSG應(yīng)用程序。OSGEarth是帶有GIS功能的OSG圖形庫,它對OSG做進(jìn)一步封裝,加入對地理信息系統(tǒng)場景管理插件、地理數(shù)據(jù)解析插件和用戶交互插件,功能更加強(qiáng)大,其主要特點(diǎn)如下:

      (1)OSGEarth是一款開源的、基于OSG的地理信息系統(tǒng)框架庫,具有良好的場景控制和地理信息管理能力。

      (2)OSGEarth可加載多種地理信息數(shù)據(jù)源,數(shù)據(jù)源格式需符合數(shù)據(jù)驅(qū)動(dòng)格式要求。數(shù)據(jù)類型包括:衛(wèi)星影像數(shù)據(jù),高程數(shù)據(jù),矢量數(shù)據(jù)等。數(shù)據(jù)源多為金字塔式的瓦片數(shù)據(jù),可極大提高系統(tǒng)數(shù)據(jù)加載和圖像渲染速度。

      (3)平臺的場景管理方式是“場景節(jié)點(diǎn)樹”結(jié)構(gòu),場景樹頂端的節(jié)點(diǎn)(osg::Geode)包含各種需要渲染的幾何頂點(diǎn)和渲染狀態(tài)信息;根節(jié)點(diǎn)(osg::Group)及其派生出的各種特殊功能節(jié)點(diǎn)則作為場景樹的各個(gè)枝節(jié)節(jié)點(diǎn),它們也可以擁有不同的渲染狀態(tài)機(jī);有且只有一個(gè)節(jié)點(diǎn)可以直接作為整個(gè)場景的根節(jié)點(diǎn),使用setSceneData將其設(shè)置給場景的視鏡器系統(tǒng),即等同于將整個(gè)場景樹傳遞給渲染樹和顯示系統(tǒng)。

      (4)圖形渲染功能由渲染樹完成。過程包括:用戶選定場景,場景篩選以及繪制。場景樹構(gòu)建完成,平臺利用渲染器,遍歷視鏡器中每個(gè)葉子節(jié)點(diǎn),設(shè)置場景樹各葉子節(jié)點(diǎn)狀態(tài)機(jī),實(shí)時(shí)完成更新場景樹,根據(jù)用戶選定場景,裁剪多余的葉子節(jié)點(diǎn),保證渲染速度流暢、快速。

      (5)用戶交互功能由事件處理器和場景漫游器完成。在系統(tǒng)每一幀的仿真過程中,事件處理器負(fù)責(zé)處理圖形窗口設(shè)備傳遞到事件隊(duì)列_eventQueue的各種事件,主要有鍵盤事件、鼠標(biāo)事件。場景漫游器取得主攝像機(jī)的視口范圍,計(jì)算主攝像機(jī)的VPW矩陣。完成場景坐標(biāo)轉(zhuǎn)換、放大、縮小和漫游等功能。

      1.2 ITU-R.P533計(jì)算模型

      該預(yù)測模型適用于最長為7000 km的路徑的射線路徑分析、超過9000 km時(shí)應(yīng)用從擬合到測量數(shù)據(jù)的復(fù)合模式經(jīng)驗(yàn)公式,在7000-9000 km距離范圍內(nèi)應(yīng)用這兩種方法之間的平滑過渡。

      確定了給定增益的無損接收天線的月平均基本MUF、入射天波場強(qiáng)和可用接收機(jī)功率。該方法包括用于預(yù)測數(shù)字系統(tǒng)性能的信道傳輸函數(shù)的參數(shù)估計(jì)。給出了電路可靠性評估的方法。信號強(qiáng)度根據(jù)ITU R測量數(shù)據(jù)庫進(jìn)行標(biāo)準(zhǔn)化。該方法要求在指定的“控制點(diǎn)”確定若干電離層特性和傳播參數(shù)。

      在赤道地區(qū),在晚上(當(dāng)?shù)貢r(shí)間),由于區(qū)域電離層結(jié)構(gòu)不穩(wěn)定性,預(yù)測結(jié)果有可能出現(xiàn)偏差,而這種不穩(wěn)定性并沒有被該方法完全考慮在內(nèi),需要完善。

      1.3 Delaunay三角網(wǎng)

      Delaunay三角網(wǎng)具有最大的最小角及空外接圓兩大重要性質(zhì),使得剖分所得每個(gè)三角形最大限度地接近正三角形,因此它在所有的構(gòu)網(wǎng)原則中是最優(yōu)的,這使得它作為一種基本手段在計(jì)算流體力學(xué),地質(zhì)建模,科學(xué)計(jì)算可視化、地理信息系統(tǒng)、逆向工程等領(lǐng)域得到越來越多的應(yīng)用。Delaunay三角網(wǎng)具備以下優(yōu)異的特性:

      (1)最接近:以近期臨的三點(diǎn)形成三角形,且各線段(三角形的邊)皆不相交。

      (2)唯一性:無論從區(qū)域何處開始構(gòu)建,終于都將得到一致的結(jié)果。

      (3)最優(yōu)性:隨意兩個(gè)相鄰三角形形成的凸四邊形的對角線假設(shè)能夠互換的話。那么兩個(gè)三角形六個(gè)內(nèi)角中小的角度不會(huì)變大。

      (4)最規(guī)則:假設(shè)將三角形網(wǎng)絡(luò)中的每一個(gè)三角形的最小角進(jìn)行升序排列,則Delaunay三角形網(wǎng)絡(luò)的排列得到的數(shù)值最大。

      (5)區(qū)域性:新增、刪除、移動(dòng)某一個(gè)頂點(diǎn)時(shí)僅僅會(huì)影響臨近的三角形。

      (6)具有凸多邊形的外殼:三角網(wǎng)最外層的邊界形成一個(gè)凸多邊形的外殼。

      2原理與實(shí)現(xiàn)

      2.1原理

      在OSGEarth場景中所有繪制的節(jié)點(diǎn)數(shù)據(jù)都會(huì)加入一個(gè)osg::Group根節(jié)點(diǎn)中,而幾何圖元作為一種需要繪制的對象也有類似的數(shù)據(jù)結(jié)構(gòu),這個(gè)類就是osg::Geode,它的作用就是組織繪制圖元對象要素,圖元狀態(tài)機(jī)等參數(shù),然后,加入osg::Group中,在視鏡器中渲染顯示。圖元對象要素包括頂點(diǎn)Vertex,顏色color,頂點(diǎn)關(guān)聯(lián)方式和法線以及數(shù)據(jù)解析。結(jié)構(gòu)如圖所示:

      從圖中可以看出,首先要申請一個(gè)osg::Geometry,然后設(shè)置圖元對象要素。具體步驟如下:

      (1)指定向量數(shù)據(jù)。包括設(shè)置圖元邊界向量數(shù)據(jù)、紋理坐標(biāo)數(shù)據(jù)和頂點(diǎn)顏色值等一系列向量數(shù)據(jù)。可以通過下面幾個(gè)函數(shù)來實(shí)現(xiàn):

      void setVertexArray(Array *array);

      void setVerterData(const ArrayData&arrayData);

      void setColorArray(Array *array);

      void setColorDara(const ArrayData&arrayData);

      (2)設(shè)置綁定方式。包括依據(jù)離散點(diǎn)值與顏色對應(yīng)關(guān)系,設(shè)置顏色容器和紋理坐標(biāo)的法線??梢酝ㄟ^下面函數(shù)實(shí)現(xiàn):

      Void setNormalBinding(AttributeBinding a);

      Void setColorBinding(AttriburreBinding a);

      (3)數(shù)據(jù)解析。指定圖元各種向量數(shù)據(jù)和圖元綁定方式之后,需對向量數(shù)據(jù)進(jìn)行解析。這里采用delaunay三角網(wǎng)算法,將向量頂點(diǎn)數(shù)據(jù)以基礎(chǔ)單元類型osg::PrimitiveSet::TRIANGLES,進(jìn)行解析。具體解析過程詳見后續(xù)章節(jié)。

      (4)各圖元參數(shù)設(shè)置完成后,加入osg::Geometry中渲染,使能葉子節(jié)點(diǎn),加入場景樹根節(jié)點(diǎn),在視景器中圖像更新顯示,完成圖元繪制。

      2.2 實(shí)現(xiàn)

      本程序采用C++語言編程,利用其語言本身簡潔、使用靈活、數(shù)據(jù)結(jié)構(gòu)系統(tǒng)化、控制流程結(jié)構(gòu)化、可移植性好等優(yōu)點(diǎn),在編程過程中盡量發(fā)揮語言優(yōu)勢。程序以插件的形式進(jìn)行封裝,方便系統(tǒng)集成調(diào)用,工程應(yīng)用價(jià)值較大。

      利用ITU算法模型,指定發(fā)射機(jī)發(fā)射功率,天線發(fā)射增益,接收增益,工作頻率等工作參數(shù),設(shè)定通信成功信噪比,給出不同工作頻率,指定目標(biāo)區(qū)域的通信信道信噪比數(shù)據(jù)。在osgEarth系統(tǒng)平臺上,應(yīng)用該科學(xué)計(jì)算可視化插件,給出通信信噪比分布圖,設(shè)定可通信噪比門限下限值,進(jìn)而判斷通信可通率情況,方便后續(xù)項(xiàng)目工作展開。程序工作流程圖如下:

      利用delaunay三角網(wǎng)算法,解析圖元離散點(diǎn)可通信噪比數(shù)據(jù)子程序的結(jié)構(gòu)流程圖如下所示:

      主要代碼如下所示:

      m_rpHGeo = new osg::Geometry;

      m_rpHGeo->setDataVariance(osg::Object::DYNAMIC);

      m_rpHGeo->setUseDisplayList(false);

      m_rpHGeo->setUseVertexBufferObjects(true);

      m_rpHGeo->getOrCreateStateSet()->setRenderBinDetails(11,"DepthSortedBin");

      osg::ref_ptrpArrayXYZ = new osg::Vec3Array;

      osg::ref_ptrpColorArray = new osg::Vec4dArray;

      osg::ref_ptrrpDrawEle=newosg::DrawElementsUShort(osg::PrimitiveSet::TRIANGLES);

      m_CdlauNay->push_backPt(pArrayXYZ);

      m_CdlauNay->createTn();

      int triNum = m_CdlauNay->findTriNum();

      long p0No=0,p1No=0,p2No=0;

      for(int i=0;i

      {

      for(int j=0;j

      {

      m_CdlauNay->findPointIndex(j,p0No,p1No,p2No);

      if(i == p0No || i == p1No || i == p2No)

      {

      rpDrawEle->push_back(p0No);

      rpDrawEle->push_back(p1No);

      rpDrawEle->push_back(p2No);

      }

      }

      }

      m_rpHGeo->setVertexArray(pArrayXYZ);

      m_rpHGeo->setColorArray(pColorArray,osg::Array::BIND_PER_VERTEX);

      m_rpHGeo->addPrimitiveSet(rpDrawEle);

      m_rpHGeode->addDrawable(m_rpHGeo);

      osg::Group root->addchild(m_rpHGeode);

      不同工作頻率可通信噪比分布圖如下所示:

      3結(jié)束語

      本文以osgEarth地理信息平臺為基礎(chǔ),提出利用Delaunay三角網(wǎng)算法,解決科學(xué)計(jì)算可視化值域填充問題的一種方法。該方法結(jié)構(gòu)清晰、使用靈活,適用二維任意域離散點(diǎn)數(shù)值填充問題。程序以插件形式封裝,方便系統(tǒng)集成、調(diào)用,具有較高的工程應(yīng)用價(jià)值。本方法目前只適用二維值域填充問題,對于三維值域填充問題,需要做進(jìn)一步研究和實(shí)現(xiàn)。

      參考文獻(xiàn):

      [1] 蔣瑜,杜斌,盧軍,等.基于Delaunay三角網(wǎng)的等值線繪制算法[J].計(jì)算機(jī)應(yīng)用研究,2010(1):101-103.

      [2] 方勇,劉鵬,胡海彥.一種Delaunay三角網(wǎng)的快速生成算法[J].測繪科學(xué)與工程,2006,26(3):16-20.

      [3] 武曉波,土世新,肖春生.Delaynay三角網(wǎng)的生成算法研究[J].測繪學(xué)報(bào),1999,28(1):28-35.

      [4] 肖鵬,劉更代,徐明亮.OpenSceneGraph三維渲染引擎編程指南[M].北京:清華大學(xué)出版社,2010.

      【通聯(lián)編輯:梁書】

      猜你喜歡
      插件
      自編插件完善App Inventor與樂高機(jī)器人通信
      基于OSGi的軍用指揮軟件插件機(jī)制研究
      插件技術(shù)在計(jì)算機(jī)軟件技術(shù)中的運(yùn)用
      MapWindowGIS插件機(jī)制及應(yīng)用
      基于框架-插件架構(gòu)的軍事仿真系統(tǒng)設(shè)計(jì)方法研究
      基于Revit MEP的插件制作探討
      插件虛擬機(jī)的設(shè)計(jì)與實(shí)現(xiàn)*
      插件技術(shù)在計(jì)算機(jī)軟件中的應(yīng)用分析
      插件體系結(jié)構(gòu)軟件的原理和實(shí)現(xiàn)
      北川| 景德镇市| 三亚市| 彭泽县| 临西县| 弥渡县| 淮阳县| 博乐市| 广东省| 清河县| 禄丰县| 湖北省| 灯塔市| 中西区| 平利县| 澄江县| 扶沟县| 昂仁县| 衢州市| 建瓯市| 上犹县| 新沂市| 于都县| 湾仔区| 望奎县| 子洲县| 邮箱| 哈密市| 扶余县| 铜鼓县| 永州市| 扎兰屯市| 呈贡县| 丹阳市| 修武县| 永和县| 湘乡市| 绵竹市| 武功县| 富宁县| 商水县|