999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于SVG的巖性符號的繪制與應用

2016-04-08 02:59:14毛敏芳卿粼波滕奇志張余強
計算機與數字工程 2016年1期
關鍵詞:矢量

毛敏芳 卿粼波 滕奇志 張余強

(1.四川大學電子信息學院 成都 610064)(2.成都西圖科技有限公司 成都 610065)

?

基于SVG的巖性符號的繪制與應用

毛敏芳1卿粼波1滕奇志1張余強2

(1.四川大學電子信息學院成都610064)(2.成都西圖科技有限公司成都610065)

摘要巖性符號作為石油、地質部門表達石油地質對象特性的一種重要工具,在石油、地質巖心管理系統中具有非常重要的意義。SVG是由W3C組織開發的一種開放標準的文本式矢量圖形描述語言。論文將SVG與巖性符號相結合,提出一種基于SVG的巖性符號的繪制方法,并設計了在柱狀圖中基于SVG巖性矢量符號的動態繪制系統。系統主要利用SVG與網頁的交互性,實現巖性符號的動態繪制。

關鍵詞SVG; XML; 矢量; JavaScript; HTML5

Drawings and Application of Lithological Symbols Based on SVG

MAO Minfang1QING Linbo1TENG Qizhi1ZHANG Yuqiang2

(1. College of Electronic and Information, Sichuan University, Chengdu610064)

(2. Chengdu Xitu Technology Co. Ltd., Chengdu610065)

AbstractAs oil petroleum geology, geological department expression object properties of a kind of important tool, lithological symbols have very important significance in its oil, geology core management system. SVG is developed by the W3C organization of an open standard text vector graphic description language. Combining SVG and lithological symbols, a mapping method is proposed based on SVG lithological symbols, and the histogram dynamic rendering system is designed based on SVG lithology vector symbols. System mainly use SVG and web interaction to implement the dynamic drawing of lithological symbols.

Key WordsSVG, XML, vector, JavaScript, HTML5

Class NumberTP391.41

1引言

巖性符號作為石油地質學中地質認知與信息交流的一種圖形語言,同時也是標定巖性的圖形符號,在石油、地質巖心管理系統中占有極其重要的地位[1]。在網頁中繪制柱狀圖的過程中,巖性剖面是以位圖形式的巖性符號填充的[2],當繪制比例發生變化時,位圖形式的巖性符號圖片不能夠自適應比例的放大縮小,導致圖片出現毛刺和不清晰的現象,從而影響石油地質相關專業人員對巖心性質的分析效率。

針對上述的問題,本文提出一種基于SVG矢量圖形式的巖性符號的繪制方法,并設計一種在柱狀圖中基于SVG矢量圖的巖性符號的動態繪制系統。SVG格式的巖性符號不僅具有放大縮小無失真的優點,而且能夠根據參數信息,自動調整符號大小,使整個界面協調美觀。本文主要分為兩大部分:一是制作固定行數的巖性符號的SVG矢量圖,作為巖性符號圖樣,同時,也作為動態繪制的基礎;二是在柱狀圖中動態的嵌入SVG矢量圖,并根據井段信息動態繪制相應行數的巖性符號。

2系統架構

綜合柱狀圖作為巖心管理系統中的最重要的模塊之一,其作用是將數據庫中的相關巖心信息以圖文并茂的柱狀圖形式展示給用戶。而巖性符號又是柱狀圖中不可缺少的一部分。因此,基于SVG矢量圖的巖性符號的動態繪制系統整體構架與綜合柱狀圖系統構架類似,主要是采用B/S(Brower/Server)三層體系結構,分別為表現層(Presentation layer)、業務邏輯層(Business Logic Layer)和數據訪問層(Data access layer)。客戶端作為表現層,發送請求信號給作為業務邏輯層的服務器,服務器再進行相應的邏輯分析,最后向數據訪問層發送請求,數據訪問層接收請求后,再對數據庫進行相應操作。利用ADO.NET從數據庫中獲取數據,并以HTTP協議方式反饋給Web瀏覽器。

系統架構圖如圖1所示。

圖1 系統架構圖

系統通過采用B/S結構,用戶可以方便地通過Web瀏覽器遠程訪問服務器,而不需要安裝任何專門的應用軟件。

3巖性符號的SVG矢量圖繪制與動態填充

3.1SVG矢量圖繪制

可伸縮矢量圖像(Scalable Vector Graphics,SVG)是一種基于XML的開放標準的文本矢量圖形描述語言[3]。它利用文本格式的描述性語言,并嚴格遵從XML語法,來描述圖像的內容,是一種與圖像分辨率無關的矢量圖形格式[4],其具有以下幾個優點:

1) 基于XML標準。XML是公認的具有無窮生命力的下一代網絡標記語言,相比HTML,使用者能夠自定義標記來描述文本中的任何數據元素,以此來豐富文件的內容,也更加容易組成一個完整的信息系統[5]。

2) 矢量圖形格式。矢量圖形是由線條和填充色等構成,并由計算機根據矢量數據進行計算,繪制而成的[6]。

3) 由文本構成的圖像。SVG是一種文本格式的圖像,可以利用記事本打開編輯查看,無需任何圖像處理工具。

4) 動畫和交互性。SVG圖形可以方便地由JavaScript、Java、Perl等程序語言動態生成圖形,同時SVG完全支持DOM,能夠通過腳本受外部事件驅動[7~8]。

圖2 SVG巖性矢量符號繪制程序流程圖

基于SVG具有上述優點,再結合巖性符號都是線條和填充色的組合特點,本文采用SVG格式的巖性符號能夠更好、更方便快捷地繪制網頁中柱狀圖的巖性剖面。與HTML類似,基于XML的SVG的語法和格式,都是結構化的,即文件中的任何元素都可以作為一個對象進行管理。SVG文件最外層使用標簽〈svg〉〈/svg〉,聲明SVG文件主體的開始和結束,同時,也可在最外層標簽上面添加注釋聲明等信息。在SVG格式的巖性符號內主要用到的SVG基本圖形元素有:〈rect〉(矩形)、〈circle〉(圓)、〈ellipse〉(橢圓)、〈line〉(直線)、〈polyline〉(折線)、〈polygon〉(多邊形),此外,還有〈text〉文本元素和〈path〉路徑元素。

在繪制巖性符號時,依照石油地質符號繪圖規范[9],基于數據庫中現有的符號繪制指令集[10],通過解析各個巖性符號的繪制指令,并利用TinyXML解析庫寫入SVG文件,從而實現制作巖性符號的SVG矢量圖,其程序流程圖如圖2所示。

以灰質細砂巖為例,繪制三行符號,設定SVG初始畫布的大小高為240個單位,寬為120個單位,視口大小高也為240個單位,寬為120個單位,靠左顯示,其中涉及的圖形元素有〈rect〉、〈ellipse〉、〈line〉,標簽〈g〉是SVG框架元素,其主要框架如下所示:

〈svgviewBox="0,0,240,120" width="240" height="120" preserveAspectRatio="xMinYMinmeet" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" onload="init(evt)"〉

〈g id="g1" style="fill:none;stroke:rgb(0,0,0);stroke-width:2"〉

〈rect x="0" y="0" width="200" height="40" /〉

〈rect x="0" y="40" width="200" height="40" /〉

〈rect x="0" y="80" width="200" height="40" /〉

〈/g〉

〈g id="g2"〉

〈line x1="30" y1="0" x2="30" y2="40" style="stroke:rgb(0,0,0);stroke-width:2" /〉

〈ellipse cx="62" cy="22" rx="2" ry="2" style="fill:rgb(0,0,0);fill-opacity:0.5;stroke:rgb(0,0,0);stroke-width:2" /〉

〈ellipse cx="102" cy="22" rx="2" ry="2"style="fill:rgb(0,0,0);fill-opacity:0.5;stroke:rgb(0,0,0);stroke-width:2" /〉

〈ellipse cx="142" cy="22" rx="2" ry="2"style="fill:rgb(0,0,0);fill-opacity:0.5;stroke:rgb(0,0,0);stroke-width:2" /〉

〈/g〉

〈g id="g3" transform="translate(0,40)"〉……〈/g〉

〈g id="g4" transform="translate(0,80)"〉……〈/g〉

〈/svg〉

SVG文件用IE瀏覽器打開,其矢量圖形如圖3所示。

圖3 灰質細砂巖SVG矢量圖與位圖對比圖

把灰質細砂巖位圖放大到與SVG矢量圖相同大小后的效果圖如圖3右圖所示,兩者相比較,可以明顯地觀察出位圖出現毛刺現象,圖形失真不清晰。

3.2柱狀圖中SVG矢量圖動態填充

柱狀圖中巖性符號的SVG矢量圖動態填充,是指在已有的巖性符號SVG文件的基礎上,系統能夠根據數據庫中錄入的巖性名稱、起始井深和終止井深等信息,在相應井段位置動態的繪制相應行數的巖性符號,以達到填充的效果。在動態繪制系統中,系統需先從服務器下載SVG格式的巖性符號。由于SVG是基于文本的圖形,所以一個SVG文件只有幾KB大小,所有的巖性符號加起來也只有幾MB而已,這有利于在網絡之間的傳輸。

利用ADO.NET從數據庫獲取巖性符號的相關目錄信息、符號高度、符號寬度、偏移量、填充模式,以及相應井段的起始井深和終止井深,并存放在一個JSON對象數組中,方便在JavaScript中使用。在ASP.NET的網頁中,根據JSON數組的數據,利用JavaScript動態創建HTML5的新標簽embed,即創建裝載SVG文件的容器。同時,根據起始井深和終止井深,設置embed標簽的height屬性,同時把柱狀圖巖性剖面的道寬大小設置為embed標簽的width屬性,并結合本地SVG文件存放的路徑和巖性符號的目錄信息,構成每個巖性符號的新路徑,同時把該新路徑信息附給embed標簽的src屬性,從而引入SVG文件。除此之外,再根據起始井深設置embed標簽樣式中的top屬性,以使井段和巖性符號相對應。在創建embed標簽的同時,使用一個數組svginfo記錄道中每個巖性符號的具體信息,包括巖性符號名稱、embed高度、embed寬度、符號高度、符號寬度、偏移量、填充模式等,以便于SVG矢量圖的動態填充。

在巖性符號的SVG文件中,利用JavaScript腳本實現與ASP.NET網頁兩者之間的交互。網頁在加載SVG文件完成時就立即觸發SVG中的onload事件,執行填充動作。SVG首先通過target.ownerDocument獲得本身文檔對象,進而獲取其根元素svg。由于需要與網頁中的腳本進行通信,則需通過截取加載完成之后的SVG文檔的URL字符串獲得其SVG文檔名稱,即巖性符號名稱,并以此作為參數,回調網頁中的ReturnPreSvg(svgname)函數。在ReturnPreSvg(svgname)函數中,通過把參數svgname與存有巖性符號信息的數組svginfo中的巖性符號名稱按順序相比較,找到第一個對應的巖性符號繪制信息,并返回給SVG,同時在數組中刪除該符號的繪制信息。SVG獲取到需要繪制的信息后,根據embed的高度和寬度,重新設置根元素svg的height屬性和width屬性,并通過計算,重新設置視口viewBox。為了使圖形能夠隨柱狀圖的比例大小變化,不僅畫布的大小要隨著道寬的大小變化,而且相應的圖形大小也要跟著變化,這就要求svg里面的繪制單位也要跟著變化,即一個單位表示屏幕幾個像素點大小。由于所有符號的寬度最大為240個單位,故固定視口的寬度為240不變,使畫布寬度隨著道寬變化,即可確定水平方向的繪制單位。為使圖形比例協調,則垂直方向的單位大小需與水平方向的單位大小一致,因畫布的高度由embed高度決定,則可計算出視口的高度viewH,具體計算公式如下所示:

(1)

其中,height為svg畫布高度,width為畫布寬度,Width/240為水平方向的單位大小。

需繪制的符號行數row由視口高度和符號高度決定,其計算公式如下所示:

(2)

其中,viewH為視口高度,symbolHeight為符號高度。由于是在原SVG文件上再繪制,則需減去已繪制的行數,即數據庫中的填充模式大小,才得到需動態繪制的行數。利用SVG的transform屬性的平移變換(translate)和旋轉變換(rotate),再結合DOM對象,實現多行符號的繪制,達到填充的效果。

在柱狀圖中的,原比例和放大比例的巖性剖面對比圖如圖4所示。

由圖4可以看出,由于比例放大,圖形放大,導致動態填充的行數不同,同時,圖形清晰無失真。

4結語

本文結合巖性符號和SVG的特點,制作了一套基于SVG矢量圖的巖性符號并設計了柱狀圖中基于SVG矢量圖的巖性符號的動態繪制系統。基于SVG矢量圖的巖性符號具有可復用性、可維護性及可擴展性,且文件小,易下載,利于網絡傳輸,大大地增強了與其他技術標準的交互和融合。動態繪制系統基于B/S模式,利用SVG與網頁的交互手段,解決了巖性符號圖形模糊失真的問題,有效的提高了石油地質相關專業人員對巖心性質的分析效率。

參 考 文 獻

[1] 劉如奎,吳曉紅,滕奇志,等.巖性符號的繪制與管理[J].科學技術與工程,2013,(9):2465-2469.

LIU Rukui, WU Xiaohong, TENG Qizhi, et al. Draw and Management of Lithologic Symbol[J]. Science Technology and Engineering,2013,(9):2465-2469.

[2] 鄒修梅,卿粼波,吳曉紅,等.柱狀圖中矢量巖性圖例的動態繪制與編制[J].計算機與數字工程,2015,(4):714-719.

ZOU Xiumei, QIN Linbo, WU Xiaohong, et al. Dynamic drawing and Editing of Vector rock legend of Histogram[J]. Computer and Digital Engineering,2015,(4):714-719.

[3] 劉嘯.基于XML的SVG應用指南[M].北京:北京科海出版社,2001:1-4.

LIU Xiao. SVG XML-based Application Guide[M]. Beijing: Beijing Kehai Press,2001:1-4.

[4] 史冬梅,趙忠華.基于XML矢量圖像的SVG研究與應用[J].油氣田地面工程,2009,28(7):58-59.

SHI Dongmei, ZHAO Zhonghua. SVG based XML Research and Application of Vector Images[J]. Journal of Oil and Gas Field Surface Engineering,2009,28(7):58-59.

[5] 柳俊.基于SVG標準的WebGIS地圖應用研究[J].計算機工程,2008,34(18):272-273.

LIU Jun. WebGIS based on SVG standard map application study[J]. Computer Engineering,2008,34(18):272-273.

[6] 陳傳波,王菁,鄧凱.基于SVG的實時數據動態發布技術的研究[J].小型微型計算機系統,2002,23(5):609-612.

CHEN Chuanbo, WANG Jing, DENG Kai. Real-time data based on SVG dynamic publishing technology research[J]. Small Microcomputer System,2002,23(5):609-612.

[7] 黃曉文.基于XML的網絡矢量圖像SVG的實現與應用研究[J].上海電力學院學報,2003,19(1):18-22.

HUANG Xiaowen. Implementation and Application of XML Web SVG Vector Image of[J]. Shanghai University of Electric Power,2003,19(1):18-22.

[8] 劉遵雄,況志軍,高玉柱.基于SVG的電力圖形系統的實現[J].電力系統保護與控制,2005,33(21):69-73.

LIU Zunxiong, KUANG Zhijun, GAO Yuzhu. The implementation of electric power based on SVG graphics system[J]. Power System Protection and Control,2005,33(21):69-73.

[9] SY/T 6931-2012,石油地質繪圖軟件符號規范[S].

SY/T 6931-2012, Drawing pattern of Geology Software for Petroleum Geology[S].

[10] 蒲琴.石油地質矢量符號在線管理與繪制系統的實現[D].成都:四川大學,2014.

PU Qin. The Achievement of On-line Management and Rendering System for Petroleum Geology Vector-Format Symbols[D]. Chengdu: Sichuan University,2014.

中圖分類號TP391.41

DOI:10.3969/j.issn.1672-9722.2016.01.034

作者簡介:毛敏芳,女,碩士研究生,研究方向:計算機應用與圖像識別。卿粼波,男,博士,講師,研究方向:信號與信號系統、圖像處理、圖像通信。滕奇志,女,博士,教授,博士生導師,研究方向:數字圖像處理與模式識別、計算機應用與圖像識別、生物醫學圖像等。張余強,男,研究方向:軟件工程。

收稿日期:2015年7月3日,修回日期:2015年8月13日

猜你喜歡
矢量
矢量三角形法的應用
基于矢量最優估計的穩健測向方法
三角形法則在動態平衡問題中的應用
色料減色混合色矢量計算
出版與印刷(2013年3期)2013-01-31 03:26:11
主站蜘蛛池模板: 国产成人综合在线观看| 国产成人1024精品| 亚洲中文字幕23页在线| 九九精品在线观看| 成人免费网站久久久| 色欲不卡无码一区二区| 亚洲天堂视频在线观看| 亚洲天堂.com| 91成人在线观看| 中文字幕久久波多野结衣| 亚洲欧美极品| 在线观看免费AV网| 精品国产成人a在线观看| 扒开粉嫩的小缝隙喷白浆视频| 久久狠狠色噜噜狠狠狠狠97视色| 久久特级毛片| 亚洲V日韩V无码一区二区| 尤物在线观看乱码| 国模极品一区二区三区| aaa国产一级毛片| 狼友av永久网站免费观看| 亚洲三级网站| 88国产经典欧美一区二区三区| 国产高潮流白浆视频| 免费一级无码在线网站| 毛片三级在线观看| 青青草a国产免费观看| 久久久久久久久久国产精品| 亚洲视频欧美不卡| 中文字幕在线观看日本| 天堂av综合网| 婷婷激情亚洲| 国产成人AV男人的天堂| 欧美一级爱操视频| 亚洲成在线观看 | 2022国产91精品久久久久久| 日韩在线播放欧美字幕| 亚洲欧美日韩中文字幕在线一区| 亚洲黄色网站视频| 高清乱码精品福利在线视频| 亚洲成人黄色在线观看| 自拍偷拍欧美日韩| 99精品在线看| 三上悠亚一区二区| 亚洲视频a| 国产喷水视频| 99久久国产精品无码| 全部免费特黄特色大片视频| 日韩久草视频| 国产成人高清精品免费| 国产主播在线一区| AV老司机AV天堂| 亚洲最大情网站在线观看| 亚洲人在线| 亚洲swag精品自拍一区| 九九九精品成人免费视频7| 国产精品嫩草影院av| 亚洲天堂首页| 国产在线无码一区二区三区| 日韩精品无码免费一区二区三区| 亚洲第一页在线观看| 国产精品午夜福利麻豆| 免费三A级毛片视频| 影音先锋丝袜制服| 国产av一码二码三码无码 | 亚洲欧洲天堂色AV| 欧美日韩福利| 999精品色在线观看| 狠狠v日韩v欧美v| 亚洲国产系列| 久久久久中文字幕精品视频| 国产欧美日韩在线一区| 国产日韩久久久久无码精品| 亚洲高清在线播放| 欧美精品1区| 亚洲日韩AV无码一区二区三区人| 亚洲综合在线网| 国产综合无码一区二区色蜜蜜| 欧美成人看片一区二区三区 | 国产日本一区二区三区| 亚洲视频免费在线看| 人妻夜夜爽天天爽|