多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# Cario 定义 > 原文: [https://zetcode.com/gfx/cairo/cairodefinitions/](https://zetcode.com/gfx/cairo/cairodefinitions/) 在 Cairo 图形教程的这一部分中,我们将为 Cairo 图形库提供一些有用的定义。 这将帮助我们更好地了解 Cairo 绘图模型。 ## 上下文 Cairo 中的绘制是通过上下文完成的。 Cairo 上下文包含所有描述绘制方式的图形状态参数。 这包括信息,例如线宽,颜色,要绘制的表面以及许多其他内容。 这允许实际的绘图函数采用较少的参数来简化界面。 使用 Cairo 进行的所有绘制始终都是对`cairo_t`对象完成的。 Cairo 上下文与特定表面相关。 PDF,SVG,PNG,GtkWindow 等。 ## 路径 路径由一条或多条线组成。 这些线由两个或多个锚点连接。 路径可以由直线和曲线组成。 路径有两种。 打开和关闭路径。 在封闭的路径中,起点和终点相遇。 在开放路径中,起点和终点不相交。 在 Cairo,我们从一条空路开始。 首先,我们定义一条路径,然后通过抚摸和填充它们使它们可见。 重要说明。 在每个`cairo_stroke()`或`cairo_fill()`函数调用之后,该路径将被清空。 我们必须定义一条新路径。 路径由子路径组成。 ## 资源 来源是我们在绘图中使用的油漆。 我们可以将源与笔或墨水进行比较,以用于绘制轮廓和填充形状。 有四种基本来源:颜色,渐变,图案和图像。 ## 表面 表面是我们要绘制的目标。 我们可以使用 PDF 或 PostScript 表面渲染文档,并通过 Xlib 和 Win32 表面直接绘制到平台上。 该文档提到以下方面: ```c typedef enum _cairo_surface_type { CAIRO_SURFACE_TYPE_IMAGE, CAIRO_SURFACE_TYPE_PDF, CAIRO_SURFACE_TYPE_PS, CAIRO_SURFACE_TYPE_XLIB, CAIRO_SURFACE_TYPE_XCB, CAIRO_SURFACE_TYPE_GLITZ, CAIRO_SURFACE_TYPE_QUARTZ, CAIRO_SURFACE_TYPE_WIN32, CAIRO_SURFACE_TYPE_BEOS, CAIRO_SURFACE_TYPE_DIRECTFB, CAIRO_SURFACE_TYPE_SVG, CAIRO_SURFACE_TYPE_OS2 } cairo_surface_type_t; ``` ## 遮罩 在将源应用于表面之前,先对其进行过滤。 遮罩用作过滤器。 遮罩确定在哪里应用源,在哪里不应用。 遮罩的不透明部分允许复制源。 透明零件不允许将源复制到表面。 ## 图案 Cairo 图案代表在表面上绘制时的来源。 在 Cairo 中,您可以从中读取图案,该图案用作绘制操作的来源或蒙版。 Cairo 中的图案可以是实心,基于表面或渐变的图案。 在 Cairo 教程的这一章中,我们给出了一些基本定义。