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

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 閱讀(281) 評論(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>
            狼人社综合社区| 亚洲电影免费| 另类av一区二区| 欧美尤物巨大精品爽| 国产精品中文字幕欧美| 午夜精品区一区二区三| 一本一道久久综合狠狠老精东影业| 欧美大片一区二区| 夜夜精品视频一区二区| 亚洲开发第一视频在线播放| 久久福利资源站| 欧美在线一区二区三区| 国内成+人亚洲| 亚洲国产欧美在线| 国产精品一区免费在线观看| 久久久精品午夜少妇| 美女视频一区免费观看| 亚洲精品免费一二三区| 亚洲四色影视在线观看| 尤物九九久久国产精品的特点| 亚洲高清网站| 国内精品久久国产| 亚洲日本中文字幕免费在线不卡| 欧美日韩精品三区| 美日韩精品视频| 国产精品久久久久毛片大屁完整版 | 亚洲欧美日韩高清| 午夜天堂精品久久久久| 一区二区三欧美| 久久亚洲图片| 久久蜜桃香蕉精品一区二区三区| 欧美日本不卡高清| 欧美成熟视频| 亚洲国产精品成人| 欧美在线亚洲综合一区| 欧美亚洲一区二区在线| 国产精品青草久久| 一本综合久久| 亚洲欧美视频一区二区三区| 欧美日韩午夜激情| 99国产一区| 久久久免费观看视频| 久久久噜噜噜久久狠狠50岁| 国产亚洲精品v| 欧美在线短视频| 99在线视频精品| 欧美日本免费| 夜夜爽夜夜爽精品视频| 中文日韩电影网站| 国产精品久久久久9999高清| 国产精品99久久99久久久二8| 国产精品99久久久久久人| 欧美日韩一区二区在线观看| 欧美日韩亚洲一区二区三区四区 | 欧美日韩一区二区免费在线观看| 久热精品视频在线| 亚洲高清成人| 国产精品麻豆欧美日韩ww| 亚洲欧美另类国产| 亚洲国产另类精品专区| 销魂美女一区二区三区视频在线| 国产人成精品一区二区三| 麻豆91精品91久久久的内涵| 一本色道婷婷久久欧美| 另类av一区二区| 午夜精品久久久久久久99黑人| 韩日精品中文字幕| 国产精品久久久久一区二区| 久久久久一区二区| 翔田千里一区二区| 一二三区精品福利视频| 欧美激情精品久久久久久大尺度| 亚洲男女自偷自拍图片另类| 亚洲丰满在线| 亚洲国产精品一区二区尤物区| 国产精品久久二区| 欧美午夜激情在线| 欧美日韩视频| 久久久久91| 久久偷窥视频| 久久久亚洲国产天美传媒修理工| 亚洲尤物在线视频观看| 日韩亚洲一区在线播放| 亚洲电影一级黄| 亚洲激情小视频| 99精品欧美一区二区三区综合在线 | 亚洲一区精品电影| 一本色道88久久加勒比精品| 99亚洲伊人久久精品影院红桃| 亚洲美女黄网| 亚洲一区国产视频| 久久不射2019中文字幕| 欧美一区二区三区播放老司机| 欧美亚洲免费| 老司机免费视频久久| 欧美日韩精品一区二区天天拍小说| 欧美日韩一区二区视频在线| 国产女人18毛片水18精品| 国产主播在线一区| 99视频热这里只有精品免费| 亚洲欧美激情视频| 久久尤物视频| 中文av一区二区| 久久综合久久久久88| 国产精品国产成人国产三级| 国内精品美女在线观看| 国产精品99久久99久久久二8| 久久成人一区| 一本久道久久综合狠狠爱| 欧美在线日韩| 国产精品一二一区| 亚洲午夜精品在线| 亚洲精品欧美日韩| 欧美成人午夜免费视在线看片 | 欧美一区二区三区久久精品茉莉花 | 国产毛片久久| 欧美成人免费观看| 一区二区在线不卡| 欧美一区激情| 亚洲图片欧美午夜| 欧美特黄一级| 亚洲精品日产精品乱码不卡| 老司机精品视频一区二区三区| 一区二区三区.www| 欧美午夜片欧美片在线观看| 91久久亚洲| 亚洲精品人人| 欧美性开放视频| 久久精品色图| 欧美一区二区啪啪| 亚洲国产高清一区| 亚洲国产婷婷香蕉久久久久久99 | 久久福利毛片| 久久九九免费| 亚洲国语精品自产拍在线观看| 亚洲春色另类小说| 国产精品久久久久久超碰| 欧美在线中文字幕| 久久婷婷国产麻豆91天堂| 亚洲人成人77777线观看| 亚洲国产欧美在线人成| 国产精品久久久久影院色老大 | 久久综合给合| 亚洲小说欧美另类社区| 欧美一区二区观看视频| 日韩亚洲视频在线| 欧美在线国产| 午夜精品久久久久久99热| 久久人人超碰| 日韩亚洲综合在线| 国产一区二区三区在线观看视频| 影音先锋日韩精品| 久久在线播放| 亚洲激情小视频| 久久精品91久久久久久再现| 久久精品国产欧美激情| 亚洲欧洲日夜超级视频| 久久国产精品一区二区| 亚洲免费观看| 黑人操亚洲美女惩罚| 欧美精品www在线观看| 久久精品99国产精品酒店日本| 夜夜精品视频| 亚洲国产成人av| 久久九九免费视频| 亚洲尤物在线| 一本色道久久加勒比精品| 精品99视频| 国产亚洲精品久久久久婷婷瑜伽| 欧美日韩一区二区三区高清| 欧美成人r级一区二区三区| 久久九九精品99国产精品| 亚洲女人天堂av| 亚洲一区二区三区色| 99在线|亚洲一区二区| 亚洲精品午夜| 亚洲区一区二| 亚洲欧洲一级| 91久久午夜| 亚洲国产老妈| 亚洲国产日韩欧美| 亚洲人成精品久久久久| 亚洲激精日韩激精欧美精品| 欧美国产日韩一区二区三区| 欧美大秀在线观看| 亚洲成色www久久网站| 亚洲第一偷拍| 91久久精品国产91久久| 亚洲欧洲日本国产| 日韩视频一区二区三区| 亚洲国产黄色| 欧美国产日韩视频| 亚洲精品久久7777| 亚洲狼人综合| 亚洲影院免费观看| 性欧美长视频| 老鸭窝毛片一区二区三区| 欧美国产精品v| 亚洲欧洲一区二区在线观看| 99成人在线|