linux c语言画太极,利用C语言的Cairo图形库绘制太极图实例教程
前言
可能许多人对直接用C语言绘图仍然停留在Turbo C的graphics.h年代,或许也有教育老化的原因,毕竟曾经的经典早已成往事,与其想尽各种办法寻找与其兼容的图形库,不如顺势拥抱灿烂的明天。Cario(http://cairographics.org/)是一个非常出色的2D图形库,著名的GTK+3.0完全采用Cario作为绘图引擎,由此可见它的强大和吸引力。
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);
/* 绘制太极眼 */
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
运行后的效果是这样的,大家可以试试看。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。
linux c语言画太极,利用C语言的Cairo图形库绘制太极图实例教程相关推荐
- c语言太极图编程语言,利用C语言的Cairo图形库绘制太极图实例教程.pdf
利利用用C语语言言的的Cairo图图形形库库绘绘制制太太极极图图实实例例教教程程 前前言言 可能许多人对直接用C语言绘图仍然停留在T urbo C 的graphics.h年 ,或许也有教育老化的原因, ...
- C语言利用Cairo图形库绘制太极图
许多人对直接用C语言绘图仍然停留在Turbo C的graphics.h年代,或许也有教育老化的原因,毕竟曾经的经典早已成往事,与其想尽各种办法寻找与其兼容的图形库,不如顺势拥抱灿烂的明天.Cario( ...
- Python语言学习:利用python语言实现调用内部命令(python调用Shell脚本)—命令提示符cmd的几种方法
Python语言学习:利用python语言实现调用内部命令(python调用Shell脚本)-命令提示符cmd的几种方法 目录 利用python语言实现调用内部命令-命令提示符cmd的几种方法 T1. ...
- c语言画猪程序,C语言画小猪佩奇(转载)
C语言画小猪佩奇 分享下如何用 C 语言画小猪佩奇 使用带符号距离场(signed distance field, SDF)表示圆形: 沿用这个方法表示形状,但这次我们想利用 ASCII 字符|/=\ ...
- 怎么用c语言画出坐标曲线,c语言打印贝塞尔曲线坐标(三阶)
贝塞尔曲线 贝塞尔曲线(Bézier curve),是应用于二维图形应用程序的数学曲线.一般的矢量图形软件通过它来精确画出曲线,贝赛尔曲线由线段与节点组成,节点是可拖动的支点,线段像可伸缩的皮筋,我们 ...
- 怎么用c语言画出坐标曲线,c语言曲线的画法-c语言每天进步一点点(2)
用c图形函数来绘制图形是c应用基础的一部分 相对于c语言的枯燥的文本显示,图形化界面无疑能使c语言内容显示更加直观,我们编程人员更可以利用c语言中的图形函数来编写绘图函数,这样就能更方便的利用c画图, ...
- java集成r语言_R语言- 实验报告 - 利用R语言脚本与Java相互调用
一.实训内容 利用R语言对Java项目程序进行调用,本实验包括利用R语言对java的.java文件进行编译和执行输出. 在Java中调用R语言程序.本实验通过eclipse编写Java程序的方式,调用 ...
- 【C语言基础】利用C语言简单知识点实现计算器加减乘除运算功能
利用循环语句以及函数调用实现计算器的简单功能 计算器是我们在学习生活中不可或缺的一个工具,有时候要计算一些比较复杂的数据时只能借助于计算器.基本上每个人都会使用计算器,那么如何利用C语言设计出一个自己 ...
- mfc如何删除lineto画的_见到过的最完整的CAD实例教程:如何画切割刀片
大家不用猜测,为什么许久都不更新CAD的实例教程. 就是因为没素材,没有其他特别原因. 而前几天,终于有同学发来素材来咨询具体的画法,今天就给这位小伙伴一个满意的答复,也希望大家在画类似的图形时有所参 ...
最新文章
- Web项目中文件上传Filter处理
- 【网易中台实践】云信业务中台的敏捷开发
- tolowercase_Java String toLowerCase()方法与示例
- Error format not a string literal and no format arguments解决方案
- 微软认知服务开发实践(1) - 牛津计划简介
- pytorch得到梯度计算结果
- Linux开机自动启动软件/可执行程序方法
- 【ELK123】ElasticSearch+Kibana
- 两种方案的demo示例
- Docker-Docker-file构建Redis5.0.3镜像
- 浏览器是怎么解析JS的代码
- C#6.0VISUALSTUDIO 2015 C#入门经典 第7版pdf
- 华铸CAE70(灰铁).
- cadence 617工艺库安装以及相关问题解决
- GeForce Experience 绕过登录与禁止自动更新
- 家庭组网方案研究(2):路由器和光猫上的连接方式
- 手机接收短信验证码生成(纯数字)
- 获得商品详情API接口
- 创业者2012必看十大文章(6)
- 解决“Could not find @openzeppelin/contracts/token/ERC20/ERC20Detailed.sol“问题