cairo 教程

来源:互联网 发布:淘宝众筹怎么赚钱 编辑:程序博客网 时间:2024/05/24 00:16

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

原创粉丝点击