PyCairo 教程的这个部分,我们创建一些基本的和更高级的形状。我们使用纯色,模式和渐变填充这些形状。渐变将在另一章中讨论。
基本形状
PyCairo 有一些基本的方法可以用来绘制简单的形状。
在这个例子中,我们创建一个矩形,一个方形,一个圆形,一个弧形,和一个椭圆形。
|
|
rectangle()
方法用于创建方形和矩形。方形仅是特殊类型的矩形。参数是左上角在窗口中的 x 和 y 坐标及矩形的宽度和高度。
|
|
arc()
方法创建一个圆形。参数是弧心的 x 和 y 坐标,半径,起始和结束角度,以弧度数表示。
|
|
这里我们创建一个弧形,圆形的一部分。
|
|
我们使用 scale()
和 arc()
方法创建椭圆形。
其它形状可以通过组合基本元素创建。
在这个例子中,我们创建了一个星星对象,一个三角形和一个变形的三角形。这些对象使用一些直线和一条曲线创建。
|
|
星星通过连接点元组中的所有的点来绘制。fill()
方法使用当前颜色填充星星对象。
|
|
这些直线创建一个三角形。最后两个点自动连接。
|
|
变形的三角形是两条直线和一条曲线的简单组合。
填充
填充填充形状的内部。填充可以是纯色,模式或渐变。
纯色
颜色是表示红,绿和蓝 (RGB) 亮度值的组合的对象。PyCairo 有效的 RGB 值在 0 到 1 范围内。
|
|
在这个例子中,我们画了三个彩色矩形。
|
|
set_source_rgb()
方法设置 source 为一个不透明的颜色。参数为红,绿,蓝亮度值。通过调用 fill()
方法,source 被用于填充矩形内部。
模式
模式是可用于填充形状的复杂图形对象。
在这个例子中,我们绘制了四个矩形。这次我们用一些模式填充它们。我们使用了来自 Gimp 图像管理程序的四个模式图像。我们必须保持那些模式的原始大小,因为我们将展开他们。
我们在 draw()
方法外面创建图像 surface。每次窗口需要重绘时,都从硬盘读取不是很高效。
|
|
图像 surface 用一幅 PNG 图像创建。
|
|
模式由 surface 创建。我们把模式设置为 cairo.EXTEND_REPEAT
,这将使得模式以重复的方式展开。
|
|
此处我们绘制我们的第一个矩形。set_source()
方法告诉Cairo 上下文,在绘制的时候使用模式作为 source。图像模式可能不完全适合形状。rectangle()
创建一个矩形 path。最后,fill()
方法用 source 填充 path。
上面那段代码中所用到的四幅图片。
代码的执行效果如下:
本章讨论了 PyCairo 的形状和填充。
Done.