【渲染引擎】cairo介紹

來源:互聯網
上載者:User

cairo是一個輕量級的渲染2D引擎,可以根據具體的點陣座標輸出成不同格式的結果檔案,比如常見的圖片格式,或者pdf格式。cairo還支援多種程式設計語言的接入和多種第三方外掛程式的調用,是一個非常容易上手、容易使用的渲染引擎。
在cairo官方地址,有一個很簡單的上手介紹,給出一個簡單的繪製圖形講解,快速的瞭解如何繪製簡單的文字、線條和文本。在這裡就不再廢話,如果英文不好,csdn上也有中文翻譯。英文官方介紹請點擊。
這裡也貼出倆個比較適合初期上手的地址,繪製過程和代碼講解都是非常清晰的。
第一個是介紹使用cairo繪製各種圖形的代碼和代碼講解:
http://zetcode.com/gfx/cairo/shapesfills/
下面這個是介紹了cairo結合GTK一起繪製線的介紹,包括虛實線、line_join和linecap:
http://zetcode.com/gfx/cairo/basicdrawing/

這裡主要是介紹使用cairo繪製一個面圖形。根據上面連結中的一個例子進行介紹。項目需求是繪製一個面,面的邊線和面的填充需要使用不同的寬度和顏色。這裡幾個核心方法是 cairo_set_line_width cairo_stroke_preserve cairo_fill cairo_stroke
下面貼出代碼再進行具體的介紹

int draw(){    cairo_set_line_width(cr, 9);      cairo_set_source_rgb(cr, 0.69, 0.19, 0);    cairo_translate(cr, width/2, height/2);    cairo_arc(cr, 0, 0, 50, 0, 2 * M_PI);    cairo_stroke_preserve(cr);    cairo_set_source_rgb(cr, 0.3, 0.4, 0.6);     cairo_fill(cr);}

上述代碼會繪製一個填充和邊線不一樣顏色的圓。其中的關鍵就是cairo_stroke_preserve。該方法會對當前繪製的畫筆設定,包括寬度、色值進行繪製,而且當前的路徑資訊會保留在繪製的上下文中。因此接下來在執行cairo_fill的時候還是在當前路徑的上下文中。該方法和cairo_stroke不同的是,cairo_stroke繪製結束,當前繪製的路徑資訊就在繪製上下文中被清空。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.