c语⾔安卓图形库cairo,利⽤C语⾔的Cairo图形库绘制太极图实
例教程
前⾔
Cario⽀持X Window,Quartz,Win32,image.buffers,PostScript,PDF和SVG⽂件等多种输出设备,开源且跨平台。或许有⼈会觉得这么强⼤的东西⽤起来⼀定会⼗分的棘⼿,其实不然,它所提供的API函数出乎意料的简单易⽤,这篇⽂章在这⾥演⽰⼀个绘图太极图的例⼦,供⼤家参考。
实例代码如下:
#include
#define SIZE (640) /* 太极图⼤⼩ */
#define CX (SIZE / 2) /* 太极圆中⼼横坐标 */
#define CY (SIZE / 2) /* 太极圆中⼼纵坐标 */
#define R (SIZE / 2) /* 太极圆半径 */
/* 把⾓度转换为所对应的弧度 */
#define ANGLE(ang) (ang * 3.1415926 / 180.0)
int main(int argc, char *argv[])
{
/* 创建32位RGBA颜⾊格式的Cairo绘图环境,直接在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);
/* 绘制太极眼 */svg实例
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的渲染效果存储到图⽚中 */
cairo_surface_write_to_png(surface, "taichi.png");
/* 销毁并退出Cairo绘图环境 */
cairo_destroy(cr);
cairo_surface_destroy (surface);
return 0;
}
代码⾮常之简单吧,借此抛砖引⽟,希望更多的⼈会喜欢上Cario图形库。GCC编译的话,可以参考如下的命令。
gcc -o taichi $(pkg-config --cflags --libs cairo) taichi.c
运⾏后的效果是这样的,⼤家可以试试看。
总结
以上就是这篇⽂章的全部内容了,希望本⽂的内容对⼤家的学习或者⼯作能带来⼀定的帮助,如果有疑问⼤家可以留⾔交流。相关资源:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。