4.5 填充

用画笔绘制了圆形或多边形之后,还可以为其填充颜色。在GMT模块的语法介绍中,一般用 <fill> 表示需要指定填充属性,读者在见到 <fill> 时应自动联想到本节介绍的内容。

填充 <fill> 有两种方式/形式:填充颜色和填充图案。GMT 的模块中通常使用 -G<fill> 选项来填充颜色,本节以该选项为例。

4.5.1 填充颜色

给区域填充颜色很简单,直接用 -G<color> 即可。颜色在 颜色 一节已经介绍过了。比如 -Gred-G230/200/0

4.5.2 填充图案

还可以给区域填充图案(pattern),比如地质填图里经常会给不同区域填充不同的图案以区分不同的地质结构。其语法为:

-G[p|P]<pattern>[+b<color>][+f<color>][+r<dpi>]

<pattern> 有两种取法:

  • 取1到90内的整数,表示使用GMT提供的90种内置位图图案
  • 取文件名,表示使用自定义的1、8、24位Sun光栅文件作为位图图案

+r<dpi> 设置了位图图案在当前页面上的分辨率。<dpi> 越大,则区域内位图重复的次数越多。<dpi> 的默认值为1200。

若使用 -GP 而不是 -Gp,则图案会发生位反转,即白色区域变成黑色,黑色区域变成白色(仅对1位位图或GMT预定义位图图案有效)。

对于GMT预定义的图案以及用户自定义的1位位图来说,可以用 +b<color>+f<color> 分别设置图案的前景色和背景色,以分别替换默认的黑色和白色像素点。若设置前景色或背景色为 -,则视为前景色或背景色为透明。

注解

  1. 由于PostScript实现的限制,-G 选项里使用的光栅图片必须小于146x146像素;若要使用更大的图像,需要使用 psimage 模块
  2. 若GMT在编译时链接了GDAL,则也可以使用其他格式的图片。
  3. 在PostScript Level 1下,图案填充是通过使用多边形做路径裁剪实现的。复杂的裁剪路径会需要更多的内存,因而可能导致某些PS解释器由于内存不足而退出。在这种情况下,建议使用灰度填充区域。

4.5.3 小练习

下面使用 psxy 模块在底图中心绘制了一个直径为4厘米的圆,并填充颜色:

echo 5 5 | gmt psxy -JX10c/10c -R0/10/0/10 -Baf -Sc4c -G<fill> > test.ps

请尝试将命令中的 <fill> 修改为以下不同的值并查看效果以理解这一节的内容:

  • -G128
  • -G127/255/0
  • -G#00ff00
  • -G25-0.86-0.82
  • -GDarkOliveGreen1
  • -Gp7+r300
  • -Gp12+r300
  • -Gp7+r1000
  • -GP7+r1000
  • -Gp7+bred+r300
  • -Gp7+bred+f-+r300