圖形編程
《AGG入門》
摘要: 卷積(convolution)是泛函分析里的一個概念,不過泛函分析一般都是數學系才學的,計算機系的學生大多在概率統計課本里了解到。它分為兩種形式,一個是離散形式,一個是連續(積分)形式。在圖像處理中我們更關心離散卷積,不過也先看看積分形式的卷積。現在假設我們有兩個函數f(x)和g(x),這里g(x)又叫做平滑函數或者卷積核,那么它們在連續空間的卷積是
閱讀全文
摘要: 先看on_draw函數:我們先定義了兩個頂點源,一個是橢圓,另一個是自制的三角形;先把rasterizer重置,清除上次重繪留下的光柵信息;我們再在光柵中添加這兩個頂點源,用渲染器渲染,就是了……
閱讀全文
摘要: 頂點源(Vertex Source)不是一個類,而是一種類的模式。這個類里面有rewind()函數和vertex()函數給AGG內部調用。類如其名,頂點源就是為繪圖系統提供頂點信息的……
閱讀全文
摘要: 可能有的人會覺得奇怪的是,為什么在畫線函數中,不用pix_fmt.copy_pixel()而用ren_bas.copy_pixel()呢?因為,在pix_fmt中,混合器不進行檢查,像素拷貝的時候會拷貝到剪裁區域以外,這樣會造成很奇怪的情況,以至于如果寫到了緩存以外,還會出現異常。注意,剪裁盒功能是基礎渲染器級別才提供的,更加底層的操作,比如像素格式混合和直接操作緩存,高層次的渲染器是無從管理的。為了安全起見,建議少碰基礎渲染器以下的工具……
閱讀全文
摘要: 基礎渲染器(Base Renderer)是掃描線渲染器的基礎,可以說,正常情況下,你繪畫任何圖形、做任何事,都需要通過它。而基礎渲染器需要你以模版的形式提供像素格式的信息,他將會通過像素格式混合器來實現渲染。其實,基礎渲染器比像素格式混合器多了剪裁盒的功能,其他混合、拷貝什么的和像素格式混合器是相似的,這里就不列出來了。
閱讀全文
摘要: 渲染緩存保存著一個個像素,作為AGG的畫布。它僅僅是一個內存塊,用來儲存像素信息,不提供任何繪圖功能,只允許你讀取和修改里面的數據。它也不告訴你里面的像素是灰度的、RGB的還是RGBA的,不告訴你從哪里到哪里是一個像素——它只是用來管理內存數據的。
閱讀全文
摘要: AGG分有多種渲染器。在AGG中,渲染器負責表現掃描線中的每個線段。在渲染器之前,AGG圖形中的線段是沒有顏色值的,只是位置、長度和 覆蓋率(透明度)。渲染器賦于線段色彩,最終成為一幅完整的圖像。
閱讀全文
摘要: AGG是一個高效的、高質量的、開源的矢量圖形庫,類似的有:GTK+的Cairo,Microsoft的GDI+。在三者中,AGG的性能是最高的(不討論Skia和Direct2D,他們有OGL和DX的硬件加速,繪圖速度根本不是一個檔次的)。讓我們細數一下他的優缺點:
閱讀全文
摘要: platform_support類——它允許你建立一個窗口來測試你的圖形,并用鼠標鍵盤去控制它。
閱讀全文