cairo 教程

http://blog.chinaunix.net/u2/60529/showart_2283310.html

目前学习至第五章,cairo的一点点总结:

      1、生成环境,gdk_cairo_create(),通常是从window或drawarea生成环境。Cairo 环境保存着所有的图形状态参数,这些参数描述了图形的构成,譬如线条宽度、颜色、要绘制的外观 (Surface) 以及其它一些信息。

      2、设置source,source可以直接设置rgb颜色cairo_set_source_rgb(),也可以从cairo_pattern设置cairo_set_source(),而pattern可以从surface中设置,cairo_create_pattern_for_surface()。

      3、如果是画图或线段,设置线段粗细cairo_set_line_width。

      4、然后设置起点move_to和终点line_to

      5、如果要画各种几何形状,使用各自的函数,如arc  rectangle

      6、如果想把几何形状边缘画出,使用cairo_stroke或cairo_stroke_preserve,,线段颜色如3所设置。

      7、如果想填充该几何形状,使用fill,fill使用的颜色由source决定,而填充范围由4决定。

      8、如果想画图,首先cairo_set_source_surface (cr, image, 10, 10),然后使用cairo_paint(cr)或cairo_paint(cr,alpha)

        总之,首先要生成一个cairo环境,然后要有一个源(source),这个源可以设置rgb颜色或从图片等获得,最后根据你要画的东西调用相应的函数。

        注意要画线段(包括一个几何形状的边线)必须调用cairo_stroke或cairo_stroke_preserve。cairo_stroke_preserve () 函数会将它绘制的路径依然保存在 cairo 环境中,而 cairo_stroke () 所绘制的路径,在绘制完成后,就从 cairo的环境中清除了。所以当你想画出一个圆并填充颜色时,应该使用cairo_stroke_preserve,使用cairo_stroke的话,画完圆后路径就消失了。

        再注意路径的概念:

        一条 Path(路径)通常是由一条或多条首位相接的直线段构成的,也可以由直线段与曲线段构成。路径可分为 Open(开放)类型与 Closed(闭合)类型,前者的首尾端点不重合,后者的首尾端点重合。在 Cairo 中,绘图要从一条空路径开始,首先定义一条路径,然后通过绘制/填充操作使之可见。要注意的是,每次调用 cairo_stroke () 或 cairo_fill () 函数之后,路径会被清空,不得不再定义新的路径。

        源好比绘图中所使用的画笔/颜料,使用它来绘制/填充图形轮廓。有 4 种基本的源:color、gradient、pattern 与 image。

          cairo_move_to(cr,60,60);//将画笔移动到 60x60坐标,注意:画文字的时候,这个坐标是文字左下角坐标,如果你这时候移动到0,0坐标, 其实你的文字将被画到400x400的画布之外。切记

       图案 (Pattern)

       图案表示被绘制到外观的源。在 Cairo 中,图案是一种可以读取的内容,可用作绘图操作的源或蒙板。图案可以是纯色模式、基于外观的模式以及渐变模式。

       MASK

       调用cairo_fill()函数,在cairo指南中提到过,如果调用cairo_stroke(),则前面画的path为mask,如果调用cairo_fill(),则path围成的区域为mask,这里mask是上个函数画的方块,而源是pattern

Cairo 概念 ................................................................................................................................... 3 环境 (Context) ............................................................................................................................. 3 路径 (Path) ................................................................................................................................... 3 源 (Source) ................................................................................................................................... 3 外观 (Surface) .............................................................................................................................. 3 蒙板 (Mask) ................................................................................................................................. 4 图案 (Pattern) ............................................................................................................................... 4 二Cairo 后端 ................................................................................................................................... 4 1. PNG 图像 ................................................................................................................................. 4 2. PDF 文件 ................................................................................................................................. 5 3. SVG 文件 ................................................................................................................................. 6 4. GTK 窗口 ................................................................................................................................ 7 三 基本绘图 ..................................................................................................................................... 9 直线段 .......................................................................................................................................... 9 描绘 (Stroke) 与填充 (Fill) ..................................................................................................... 12 虚线 (Dash) ................................................................................................................................ 14 线帽 (Line caps) ........................................................................................................................ 17 线的交合 (Line joins) ................................................................................................................ 19 四 高级形状绘制 ........................................................................................................................... 21 基本形状..................................................................................................................................... 21 复杂的图形................................................................................................................................. 24 填充 (Fill) .................................................................................................................................. 27 纯色 (Solid color) .................................................................................................................. 27 图案 (Pattern) ......................................................................................................................... 28 渐变 (Gradient) ...................................................................................................................... 32 五 透明........................................................................................................................................... 35 透明的矩形................................................................................................................................. 35 淡出的效果................................................................................................................................. 37 “等待”的演示 ............................................................................................................................. 40 六 合成........................................................................................................................................... 43 七 裁剪与遮蔽 ............................................................................................................................... 46 裁剪 ............................................................................................................................................ 46 裁剪矩形..................................................................................................................................... 49 遮蔽 ............................................................................................................................................ 53 变换 ............................................................................................................................................ 55 平移......................................................................................................................................... 55 旋转......................................................................................................................................... 56 缩放......................................................................................................................................... 58 错切......................................................................................................................................... 60 椭圆......................................................................................................................................... 63 星星......................................................................................................................................... 65 七 文本........................................................................................................................................... 68 灵魂伙伴..................................................................................................................................... 68 一个字接一个字…… ................................................................................................................. 71 膨胀 ............................................................................................................................................ 73 八 图像........................................................................................................................................... 76 图像的显示................................................................................................................................. 77 垂帘效果(Blind Down) ......................................................................................................... 78 光谱效果..................................................................................................................................... 81
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值