在本节Cairo图形库指南中,我们会创建一些基本的和高级的图形,然后用颜色,模式,渐变色填充它们。
基本图形:
Cario图形库有一些API用于创建基本图形
这个例子中,我们创建了一个矩形,一个正方形,一个圆,一个弧形和一个椭圆形。
函数cairo_rectangle用来创建矩形和正方形。一个正方形只是一个特殊的矩形。
这一行创建了一个圆。
这个函数创建了一个椭圆。
其它图形可以用上面的基本图形的组合来表示。
这个例子中,我们创建了一个星星,一个三角形,一个修改过的三角形。这些图形是用线条和弧线组成的。
星星是用保存在数组里面的点连接到一起形成的线画出来的。这个星星用cairo_close_path()把路径封闭,把最后一个和最开始的点连接到一起。
这个修改过的三角形是由两个线段和一个弧形组成的。
填充
一个颜色值由RGB三个分量组合而成。Cairo中,RGB取值范围为0-1.
这个例子中,我们画了四个填充过的矩形。
调用cairo_set_source_rgb()函数设置一个不透明的颜色值。参数为红,绿,蓝三个颜色分量。通过调用cairo_fill(),把设置这个颜色值填充到矩形里面。
模式
在这个例子中,我们又画了四个矩形,这一次,我们用了一些填充模式。我们用了四个从imp里面的图片。我们必须保持这些图片原来的尺寸,因为我们要把它们镶嵌进来。
我们在on_expose_event这个函数外面创建加载。当每次窗口需要重绘时,就不会再次加载了。
我们通过调用cairo_pattern_create_for_surface(),创建了一个模式。
这里,我们画了第一个矩形。cairo_set_source()函数告诉Cairo context用一个绘图模式进行绘图。这个图片大小并没有严格的适合这个矩形。我们设置CAIRO_EXTEND_REPEAT这个值,让这个模式循环镶嵌进来。cairo_rectangle()创建了一个矩形路径。最后,cairo_fill()用指定的模式填充这个路径。
原文链接:http://zetcode.com/tutorials/cairographicstutorial/shapesfills/