青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Error

C++博客 首頁 新隨筆 聯系 聚合 管理
  217 Posts :: 61 Stories :: 32 Comments :: 0 Trackbacks

傳說這就是AGG:

agg

要理解這張圖上的幾個概念:

*vertex source: 頂點源。一切的圖像的世界是由點構成的。

*cordinate conversion pipeline: 坐標轉換管道。不用自己去擔心各種坐標系?

*scanline rasterizer: 光柵化,把頂點數據處理合成一組組線段,這里可能會有一些fix或者effect。

*renderers: 渲染器

*rendering buffer: 用于存放像素點的內存

我的理解是這樣:圖像是以點集的方式存在的,要畫圖先是沖一組點集開始,先把這一組點的坐標轉換成目標坐標,然后通過光柵化形成一組線段,然后通過渲染器把這一組線段渲染到buffer上面形成面。點->線段->面

*****************************************************************************************************

一、vertex source

 

我理解它是一個concept,官方解釋是這個:

    所有實現了void rewind(unsigned path_id);和unsigned vertex(double* x, double* y);的類。

agg提供的vertex source concept如下(可以自己擴展):

ellipse 圓

arc 弧線

curve3 curve4 貝塞爾曲線

gsv_text AGG自帶字模的文字輸出(只支持ASCII碼)

gsv_text_outline<>  可變換文字,輸入為gsv_text和變換矩陣

rounded_rect  圓角方形

path_storage 路徑存儲器,可以用join_path方法加入多個頂點源。

arrowhead  箭頭

 

二、coordinate conversion pipeline

    坐標轉換管道用于改變頂點源產生的頂點,包括坐標、命令、產生新頂點等。如對頂點進行矩陣變換、插入頂點形成虛線之類的功能。

1.變化矩陣 trans_affine

頭文件:#include <agg_trans_affine.h>

接口:scale 縮放、rotate旋轉、translate平移、矩陣*乘法、invert取反矩陣

2.坐標轉換管道

template<class VertexSource, class Markers = null_markers> struct conv_stroke;

變成連續線 構造參數為VertexSource width屬性決定線寬。

template<class VertexSource, class Markers = null_markers> struct conv_dash;

虛線

template<class MarkerLocator, class MarkerShapes> class conv_marker;

建立標記

template<class VertexSource> struct conv_contour;

輪廓變換

template<class VertexSource> struct conv_smooth_poly1_curve;

圓滑過渡多邊形各頂點

template<class VertexSource> struct conv_bspline;

圓滑過渡多義線各頂點

template<class VertexSource, class Curve3 = curve3, class Curve4 = curve4> class conv_curve;

可識別VertexSource中的曲線信息

template<class VertexSource, class Transformer = trans_affine> class conv_transform;

矩陣變換 用變換矩陣重新計算頂點位置

 

三、scanline rasterizer

1.scanline

掃描線是一種保存span的容器,span用于表示一小條(水平方向)細線。圖像中同一行的span組成一個Scanline

2.rasterizer

Rasterizer就是把相當于矢量數據的一堆頂點和命令轉換成一行行的掃描線的設備,它就象粉刷工人對照著圖紙把彩漆刷到墻上一樣

 

四、renderers

    渲染器負責表現掃描線Scanline中的每個線段(span)。在渲染器之前,AGG圖形中的線段是沒有顏色值的,只是位置、長度和覆蓋率(透明度)。渲染器賦于線段色彩,最終成為一幅完整的圖像。

    渲染器被分成底中高三層。其中底層負責像素包裝,由PixelFormat Renderer實現;中層是基礎層,在PixelFormat Renderer的基礎上提供更多方法,是所有高層渲染器依賴的基礎,由Base Renderer實現;高層負責渲染Scanline中的線段,由Scanline Renderer等實現。

 

五、rendering buffer

Rendering Buffer是一個內存塊,用于保存圖像數據。這是AGG與顯示器之間的橋梁,我們要顯示AGG圖形實際上就是識別這個內存塊并使用系統的API顯示出來 而已(實際上幾乎不需要做轉換工作,因為無論是Windows還是Linux,API所用的圖像存儲格式與Rendering Buffer都是兼容的)。

 

差不多了,其他的東東現在看多了白搭,俺們要在戰斗中學會戰斗,,,

posted on 2012-09-10 16:36 Enic 閱讀(285) 評論(0)  編輯 收藏 引用 所屬分類: agg

只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲精品1区2区| 免费久久99精品国产自| 亚洲精品永久免费精品| 国产亚洲欧美激情| 欧美性一区二区| 欧美精品久久久久久久久老牛影院| 久久精品91久久久久久再现| 欧美一区二区成人6969| 亚洲欧美日韩一区在线| 一本在线高清不卡dvd | 性欧美大战久久久久久久久| 一区二区欧美在线| 99成人免费视频| 99精品国产一区二区青青牛奶| 亚洲第一主播视频| 欧美成人精品一区二区| 另类亚洲自拍| 欧美成人精品h版在线观看| 免费美女久久99| 欧美福利在线| 亚洲国产福利在线| 亚洲欧洲一区二区在线播放| 亚洲国产精品一区二区第四页av | 久久在线视频在线| 极品少妇一区二区三区精品视频| 国产视频精品免费播放| 国产日韩欧美电影在线观看| 黄色资源网久久资源365| 亚洲高清一二三区| 一区二区高清在线观看| 午夜精品美女久久久久av福利| 久久久蜜臀国产一区二区| 欧美大色视频| 亚洲图片欧洲图片av| 久久精品一区二区三区四区| 欧美—级高清免费播放| 国产精品老女人精品视频| 在线看国产一区| 亚洲一区欧美一区| 鲁鲁狠狠狠7777一区二区| 亚洲区第一页| 欧美在线欧美在线| 欧美区一区二| 影院欧美亚洲| 欧美一区二区三区免费观看| 欧美国产专区| 欧美一级视频精品观看| 欧美久久久久久久| 好看不卡的中文字幕| 中文一区字幕| 欧美高清免费| 性色av一区二区三区| 欧美日韩国产另类不卡| 激情欧美一区二区三区在线观看| 亚洲一区二区欧美| 欧美高清在线一区二区| 亚洲免费影院| 欧美日韩在线第一页| 亚洲国产精品久久| 久久精品国产99国产精品澳门| 亚洲精品国产欧美| 久久综合久久美利坚合众国| 国产精品影片在线观看| 中日韩美女免费视频网址在线观看| 久久人体大胆视频| 亚洲自拍电影| 欧美午夜电影完整版| 日韩一级欧洲| 欧美高清视频免费观看| 久久本道综合色狠狠五月| 国产精品久久久久久av福利软件 | 一区二区三区四区国产精品| 能在线观看的日韩av| 国内精品久久久久久影视8| 亚洲资源av| 亚洲精品综合| 欧美高清在线一区二区| 亚洲国产91精品在线观看| 久久久www成人免费毛片麻豆| 亚洲婷婷综合久久一本伊一区| 欧美精品自拍| 日韩午夜激情av| 亚洲高清激情| 老牛嫩草一区二区三区日本| 伊人夜夜躁av伊人久久| 久久亚洲欧洲| 久久精品在线播放| 国产在线精品一区二区夜色| 欧美在线视频免费| 亚洲综合社区| 国产九区一区在线| 欧美一区二区三区视频免费播放 | 亚洲天堂男人| 国产精品美女久久久久久免费| 一区二区三区视频免费在线观看| 亚洲精品一区二区三区婷婷月 | 国产精品成人播放| 亚洲一区二区三区四区视频| 99热在线精品观看| 欧美日韩国产另类不卡| 国产精品99久久不卡二区| 一本不卡影院| 国产精品一区二区视频| 久久成人一区| 久久久久久久久久久一区| 亚洲成色999久久网站| 欧美大片网址| 欧美另类女人| 亚洲欧美变态国产另类| 亚洲综合日韩在线| 国产一区二区欧美| 女人色偷偷aa久久天堂| 欧美二区视频| 亚洲午夜精品网| 亚洲资源在线观看| 精品91在线| 亚洲清纯自拍| 国产精品亚洲欧美| 久久综合九色欧美综合狠狠| 欧美xx视频| 亚洲一区视频| 久久精品亚洲精品| 亚洲三级网站| 亚洲一区二区三区在线观看视频| 国产日韩欧美综合一区| 欧美不卡福利| 欧美性大战xxxxx久久久| 久久国产66| 免费看亚洲片| 亚洲男人的天堂在线观看 | 一本大道久久a久久精二百| 亚洲少妇在线| 韩国一区电影| 亚洲区在线播放| 国产酒店精品激情| 亚洲大胆av| 国产精品夜夜夜一区二区三区尤| 久久婷婷影院| 欧美日韩免费一区二区三区视频| 久久超碰97人人做人人爱| 久热精品视频| 午夜久久久久久| 免费h精品视频在线播放| 亚洲综合欧美| 蜜臀av国产精品久久久久| 午夜亚洲福利在线老司机| 久久综合狠狠综合久久综青草| 在线视频你懂得一区| 久久久久久久一区二区三区| 亚洲视频在线看| 久久久久久久久久久久久9999| 亚洲视频专区在线| 久久伊伊香蕉| 欧美一区二区网站| 欧美精品一区二区三| 久久久久九九九| 国产精品成人国产乱一区| 欧美国产精品v| 国产喷白浆一区二区三区| 亚洲三级性片| 亚洲国产99| 午夜一级在线看亚洲| 亚洲色无码播放| 欧美不卡视频一区| 久久免费国产精品1| 国产精品成人观看视频国产奇米| 欧美国产三区| 狠狠色噜噜狠狠色综合久| 亚洲影院高清在线| 一区二区三区www| 欧美1区视频| 裸体一区二区三区| 国产日韩三区| 亚洲一区二区三区精品在线观看| 亚洲精品一区二区三区樱花| 久久久久国产免费免费| 久久国产精品免费一区| 国产精品h在线观看| 亚洲精品国精品久久99热| 亚洲国产日韩综合一区| 久久久国产91| 久久亚洲精品一区| 国产日韩精品一区二区三区在线| 一区二区日本视频| 一区二区三区国产在线观看| 欧美 日韩 国产 一区| 免费视频最近日韩| 在线成人h网| 久久久爽爽爽美女图片| 久久久噜噜噜| 合欧美一区二区三区| 欧美在线免费看| 久久久久久久久久久成人| 国产日韩一区二区三区在线| 亚洲嫩草精品久久| 欧美一区二区视频观看视频| 国产精品试看| 羞羞色国产精品| 久久久夜夜夜| 尤物在线精品|