欧美大屁股bbbbxxxx,狼人大香伊蕉国产www亚洲,男ji大巴进入女人的视频小说,男人把ji大巴放进女人免费视频,免费情侣作爱视频

歡迎來到入門教程網(wǎng)!

C語言

當(dāng)前位置:主頁 > 軟件編程 > C語言 >

利用C語言的Cairo圖形庫繪制太極圖實(shí)例教程

來源:本站原創(chuàng)|時(shí)間:2020-01-10|欄目:C語言|點(diǎn)擊: 次

前言

可能許多人對直接用C語言繪圖仍然停留在Turbo C的graphics.h年代,或許也有教育老化的原因,畢竟曾經(jīng)的經(jīng)典早已成往事,與其想盡各種辦法尋找與其兼容的圖形庫,不如順勢擁抱燦爛的明天。Cario(http://cairographics.org/)是一個(gè)非常出色的2D圖形庫,著名的GTK+3.0完全采用Cario作為繪圖引擎,由此可見它的強(qiáng)大和吸引力。

Cario支持X Window,Quartz,Win32,image.buffers,PostScript,PDF和SVG文件等多種輸出設(shè)備,開源且跨平臺(tái)?;蛟S有人會(huì)覺得這么強(qiáng)大的東西用起來一定會(huì)十分的棘手,其實(shí)不然,它所提供的API函數(shù)出乎意料的簡單易用,這篇文章在這里演示一個(gè)繪圖太極圖的例子,供大家參考。

實(shí)例代碼如下:

#include <cairo.h> 
 
#define SIZE (640) /* 太極圖大小 */ 
#define CX (SIZE / 2) /* 太極圓中心橫坐標(biāo) */ 
#define CY (SIZE / 2) /* 太極圓中心縱坐標(biāo) */ 
#define R (SIZE / 2) /* 太極圓半徑 */ 
 
/* 把角度轉(zhuǎn)換為所對應(yīng)的弧度 */ 
#define ANGLE(ang) (ang * 3.1415926 / 180.0) 
 
int main(int argc, char *argv[]) 
{ 
 /* 創(chuàng)建32位RGBA顏色格式的Cairo繪圖環(huán)境,直接在Memory中渲染 */ 
 cairo_surface_t* surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, SIZE + 1, SIZE + 1); 
 cairo_t* cr = cairo_create(surface); 
 
 /* 繪制太極邊框 */ 
 cairo_set_line_width(cr, 2.0); 
 cairo_set_source_rgba(cr, 0, 0, 0, 1); 
 cairo_arc(cr, CX, CY, R, ANGLE(0), ANGLE(360)); 
 cairo_stroke(cr); 
 
 /* 繪制陰陽圓 */ 
 cairo_set_source_rgba(cr, 0, 0, 0, 1); 
 cairo_arc(cr, CX, CY, R, ANGLE(90), ANGLE(270)); 
 cairo_fill(cr); 
 cairo_set_source_rgba(cr, 1, 1, 1, 1); 
 cairo_arc(cr, CX, CY, R, ANGLE(-90), ANGLE(90)); 
 cairo_fill(cr); 
 
 /* 繪制陰陽線 */ 
 cairo_set_source_rgba(cr, 0, 0, 0, 1); 
 cairo_arc(cr, CX, CY - R / 2, R / 2, ANGLE(-90), ANGLE(90)); 
 cairo_fill(cr); 
 cairo_set_source_rgba(cr, 1, 1, 1, 1); 
 cairo_arc(cr, CX, CY + R / 2, R / 2, ANGLE(90), ANGLE(270)); 
 cairo_fill(cr); 
 
 /* 繪制太極眼 */ 
 cairo_set_source_rgba(cr, 1, 1, 1, 1); 
 cairo_arc(cr, CX, CY - R / 2, R / 10, ANGLE(0), ANGLE(360)); 
 cairo_fill(cr); 
 cairo_set_source_rgba(cr, 0, 0, 0, 1); 
 cairo_arc(cr, CX, CY + R / 2, R / 10, ANGLE(0), ANGLE(360)); 
 cairo_fill(cr); 
 
 /* 將Memory的渲染效果存儲(chǔ)到圖片中 */ 
 cairo_surface_write_to_png(surface, "taichi.png"); 
 /* 銷毀并退出Cairo繪圖環(huán)境 */ 
 cairo_destroy(cr); 
 cairo_surface_destroy (surface); 
 
 return 0; 
} 

代碼非常之簡單吧,借此拋磚引玉,希望更多的人會(huì)喜歡上Cario圖形庫。GCC編譯的話,可以參考如下的命令。

gcc -o taichi $(pkg-config --cflags --libs cairo) taichi.c 

運(yùn)行后的效果是這樣的,大家可以試試看。

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流。

上一篇:C++ STL list 遍歷刪除出錯(cuò)解決方案

欄    目:C語言

下一篇:C語言設(shè)計(jì)一個(gè)閃閃的圣誕樹

本文標(biāo)題:利用C語言的Cairo圖形庫繪制太極圖實(shí)例教程

本文地址:http://mengdiqiu.com.cn/a1/Cyuyan/1935.html

網(wǎng)頁制作CMS教程網(wǎng)絡(luò)編程軟件編程腳本語言數(shù)據(jù)庫服務(wù)器

如果侵犯了您的權(quán)利,請與我們聯(lián)系,我們將在24小時(shí)內(nèi)進(jìn)行處理、任何非本站因素導(dǎo)致的法律后果,本站均不負(fù)任何責(zé)任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網(wǎng) 版權(quán)所有