cairo[02] Windows环境学习笔记——cairo的绘图概念

cairo的与众不同的概念

  更原汁原味的描述,请到官网https://www.cairographics.org/tutorial/

  cairo的开发者为cairo的绘图方式做了一个抽象的描述。

  在cairo的函数中,分两大类:名词和动词。我们先来看名词,它们有:

  desitnation:目的地,这里可以理解为目标对象

  source:源,这里相当于是我们绘图的素材

  mask:面具,这里理解为一个模具,接下来会详解

  path:路径,和D2D的路径有一点像,只是更简单

  context:可以说是一个事件记录器

destination和source——目标和素材

  目标,在cairo中特指我们绘图的那一块区域。cairo给出的术语是surface(表面)。一个目标几乎可以是任何一个cairo支持的东西:一张png,一个PDF,或是我们想要的屏幕上的一块像素点。这个表面会像一块画布一样,一点一点积累我们绘制的东西。

  素材,cairo的介绍是将它当作是一个画家的颜料。它可以是一个颜色,还可以是一张图片或是之前我们介绍的目标对象,它也有alpha值。所以我们的绘图就开始变得有点像剪贴画了。

剪贴画的剪刀

  我们的绘图/剪贴画总不能只是一个又一个的矩形,除非你特别喜欢像素风格。所以,mask的概念就出来了。将其理解为一个模具毫不违背它的设计原因。它的作用是覆盖素材的一部分,或是更准确来说,让素材的一部分通过它呈现到目标上,达到不同图形的效果。而path则是我们剪刀的方向路径。

context

  在cairo里,所有的素材都要被存在一个context里。一个context可以存储一个素材、一个目标和一个模具。最最重要的是,他还追踪一个路径的变化。cairo用一个类来存储context:cairo_t。

cairo的动词

  cairo的绘图是通过将素材和模具放在目标上面,然后将这些“图层”压成一张呈现出来的图像。接下来的五个动词将会展现cairo对模具的操作。

  stroke:在模具上透出线来,让素材通过。

  fill:在一定区域内允许素材通过

  show text:剪出文字

  paint:将整个素材放到目标

  mask:加上一层“面纱”,可以理解为后期滤镜效果。

以上介绍的概念将会在之后的笔记中详细介绍。

转载本文需注明出处https://www.cnblogs.com/cairo-on-windows/p/CairoWin01.html 

猜你喜欢

转载自www.cnblogs.com/cairo-on-windows/p/cairowin02.html
今日推荐