一 绘制文本

//设置源的颜色 cairo_set_source_rgb(cr,0.627,0,0); //选择字体类型或尺寸 cairo_select_font_face(cr,"Adobe Heiti Std",CAIRO_FONT_SLANT_NORMAL,CAIRO_FONT_WEIGHT_NORMAL); cairo_set_font_size(cr,24); //从图像区域的(40.0,64.0)开始绘制 cairo_move_to(cr,40.0,64.0); //使用show_text cairo_show_text(cr,"Hello Cairo!");

二 绘制线段

cairo_t *cr; //生成环境 cr = gdk_cairo_create(widget->window); //设置线段颜色和粗细 cairo_set_source_rgb(cr,0,0,0); cairo_set_line_width(cr,0.5); //count保存左键点击的次数,即数组内保存的点的坐标数 //从第一个点开始,每个点依次与其它点绘制一条线段(实际上绘制了两条) //cairo_move_to和cairo_line_to在cr中定义了绘图路径 int i,j; for(i = 0;i <= count-1;i++) { for(j = 0;j <= count-1;j++) { cairo_move_to(cr,coordx[i],coordy[i]); cairo_line_to(cr,coordx[j],coordy[j]); } } count = 0; //cairo_stroke将cr中的路径绘制出来(与显示文本的cairo_show_text不同) cairo_stroke(cr); cairo_destroy(cr);

三 绘制矩形

cairo_t *cr; cr = gdk_cairo_create(widget->window); cairo_set_source_rgb(cr,0,0,0); cairo_set_line_width(cr,1); //绘制一个矩形,起点是20 20,长120,宽80 cairo_rectangle(cr,20,20,120,80); //绘制一个正方形,是矩形的特例,长宽相等 cairo_rectangle(cr,180,20,80,80); //绘制边线,且保留路径 cairo_stroke_preserve(cr); cairo_set_source_rgb(cr,0,0,1); //填充,且清除路径 cairo_fill(cr);

四 绘制圆形

cairo_t *cr; cr = gdk_cairo_create(widget->window); int width,height; gtk_window_get_size(GTK_WINDOW(widget),&width,&height); cairo_set_line_width(cr,9); cairo_set_source_rgb(cr,0.69,0.19,0); //描绘圆的轮廓,圆心是width/2,height/2,半径为宽和高较小的那个的一半再减10 //起始角为0,终止角为360 //注意,这实际上是绘制一条弧线。 cairo_arc(cr,width/2,height/2,(width < height ? width:height)/2 - 10,0,2 * M_PI); //cairo_stroke_preserve () 函数会将它绘制的路径依然保存在 cairo 环境中, //而 cairo_stroke () 所绘制的路径,在绘制完成后,就从 cairo的环境中清除了 cairo_stroke_preserve(cr); cairo_set_source_rgb(cr,0.3,0.4,0.6); //对使用 cairo_stroke_preserve () 函数绘制的路径进行蓝色填充。 //若上面使用cairo_stroke,则不填冲,因为stroke在绘制完路径后,就清除了,所以 //fill无法填充。 cairo_fill(cr); cairo_destroy(cr);

五 绘制弧线

cairo_set_source_rgb(cr,0,0,0); //注意,这里的M_PI/4是指起点是M_PI/4的半径与弧的交点 cairo_arc(cr,90,160,40,M_PI / 4,M_PI); //该圆弧并不是封闭的,只转过了180度,可以用close封闭它 cairo_close_path(cr); cairo_stroke_preserve(cr); cairo_set_source_rgb(cr,1,1,1); cairo_fill(cr);

六 绘制椭圆

cairo_set_source_rgb(cr,0,0,0); //cairo_translate() 函数可通过平移用于空间的原点来修改当前的变换矩阵 cairo_translate(cr,220,180); //设定椭圆长轴和短轴的比例 cairo_scale(cr,1,0.7); cairo_arc(cr,200,180,50,0,2*M_PI); cairo_stroke_preserve(cr); cairo_set_source_rgb(cr,1,1,1); cairo_fill(cr);

使用cairo绘制图形的部分函数总结相关推荐

  1. 绘制多边形_XDGE_RayMarchine 1- 利用Frag Shader绘制图形

    转载于小道的博客园 XDGE_RayMarchine 1- 利用Frag Shader绘制图形​www.cnblogs.com # Render/RayMarchine/Base 1- 利用Frag绘 ...

  2. 【青少年编程】【二级】绘制图形

    「青少年编程竞赛交流群」已成立(适合6至18周岁的青少年),公众号后台回复[Scratch]或[Python],即可进入.如果加入了之前的社群不需要重复加入. 微信后台回复"资料下载&quo ...

  3. 这么详细的Python matplotlib 绘制图形 还不赶紧收藏

    前言 我们前面对matplotlib模块底层结构学习,对其pyplot类(脚本层)类提供的绘制折线图.柱状图.饼图.直方图等统计图表的相关方法,列举往期文章如下. 超详细的Python matplot ...

  4. 用python绘制漂亮的图形-用python绘制图形的实例详解

    1.环境系统:windows10 python版本:python3.6.1 使用的库:matplotlib,numpy 2.numpy库产生随机数几种方法import numpy as npnumpy ...

  5. python turtle库画图案-python中的turtle库绘制图形

    1. 前奏: 在用turtle绘制图形时,需要安装对应python的解释器以及IDE,我安装的是pycharm,在安装完pycharm后,在pycharm安装相应库的模块,绘图可以引入turtle模块 ...

  6. python turtle库画图案-Python如何使用turtle库绘制图形

    1. 前奏: 在用turtle绘制图形时,需要安装对应python的解释器以及IDE,我安装的是pycharm,在安装完pycharm后,在pycharm安装相应库的模块,绘图可以引入turtle模块 ...

  7. 009_Raphael绘制图形

    1. Raphael是一个用于在网页中绘制矢量图形的Javascript库.它使用SVG W3C推荐标准和VML作为创建图形的基础, 你可以通过JavaScript操作DOM来轻松创建出各种复杂的柱状 ...

  8. html5 绘制图形,HTML5绘制几何图形

    绘制几何图形 var canvas = document.getElementById("myCanvas"); var ctx = canvas.getContext(" ...

  9. OpenCV_02 图像的基本操作:图像IO+绘制图形+像素点+属性+图像通道+色彩空间的改变

    1 图像的IO操作 这里我们会给大家介绍如何读取图像,如何显示图像和如何保存图像. 1.1 读取图像 API cv.imread() 参数: 要读取的图像 读取方式的标志 cv.IMREAD*COLO ...

最新文章

  1. java gps时间转换工具_java 时间戳和时间互转工具 和 时间偏移量计算
  2. 使用python抓取百度漂流瓶妹纸照片
  3. 在ubuntu16.04中安装apache2+modsecurity以及自定义WAF规则详解
  4. qt中初始化界面的几种方法
  5. context root修改无效:web修改项目路径(eclipse)
  6. 一个实用的表格(锁定表头,可调整单元格大小,可排序)
  7. iOS 多线程:『GCD』详尽总结
  8. python读取配置文件获取所有键值对_python读取配置文件
  9. accdb 用户类型未定义_Python早期设计与开发:数字类型的设计缺陷
  10. 小米主办HBaseCon亚洲峰会,打造世界一流的“工程师理想乐园”
  11. 寻找三角形(编程题)
  12. 单体测试书的检查要点
  13. 移动端H5 QQ在线客服链接代码
  14. chrome安装crxMouse鼠标右键手势插件后导致需要双击两次才能打开右键菜单
  15. win7系统怎样开启wmi服务器,WMI服务是什么?Win7系统如何禁用WMI服务?
  16. 指付通盗刷信用卡维权连载--9月3日维权纪实
  17. 计算机硬件系统主机主要包括,组成计算机硬件系统的基本部分是什么?
  18. JAVA中级(五)response(1)基本介绍,代表响应的类,如何设置响应头,行,体
  19. java实现画笔的画圆与矩形功能_Java实现画线、矩形、椭圆、字符串功能
  20. 中北大学计算机研究生学院,【计算机考研】院校信息-中北大学

热门文章

  1. MySQL的basedir
  2. 【刘文彬】【精解】EOS TPS 多维实测
  3. glyphicons-halflings-regular.woff2 文件 404
  4. Android 创建一个新的Activity
  5. 梳理一下自己的技术关注面[转]
  6. AR+教育意义巨大,将对行业未来产生深远影响
  7. 24. Spring Boot 事务的使用
  8. 2009年云计算将引发一场黑客攻击高潮
  9. 需要友元的原因及使用
  10. Uva 10061 进制问题