线条属性

对于线条而言,其基本的画笔属性由三个:线宽、颜色和线型,在 画笔 中已经做过介绍。除此之外,某些模块还可以为线条设置额外的属性, 这些额外的属性可以通过在画笔属性后加上子选项来是实现。

线条的额外属性包括:端点偏移量、线条平滑和端点箭头。

端点偏移量

在给定若干个数据点绘制线条时,一般都是从起点(第一个点)一直画到终点(最后一个点)。 可以使用 +o 子选项为线段两端指定偏移量,使得绘制线段时的起点和终点与输入数据中 指定的起点和终点间存在一定的偏移量。该子选项的语法是: +ooffset[u]

  • 若只给了一个 offset,则表示起点和终点共用同一个偏移量

  • 也可以用 offset/offset 分别为起点和终点指定不同的偏移量

  • 对于每个偏移量,都可以使用长度单位 c|i|p 或距离单位

下面的示例展示了 +o 子选项的用法和使用效果。 图中,细线和粗线使用了相同的输入数据,其中细线没有使用 +o, 此时线段的起点和终点与数据指定的点重合; 粗线在绘制线条时使用了 -W2p+o1c/500k 选项, 即在起点处偏移1厘米,在终点处偏移500千米。

Source Code

../../_images/eb0cdbf024c1e6187eeebf9ec575e654.png

线段起点偏移示意图

线条平滑

通常情况下,在绘制线条时,两点之间是用直线连接的(地图上两点之间默认用大圆弧连接)。 使用 +s 子选项会使用 Bezier splines 在两点之间做样条插值以得到更光滑的曲线。 需要注意的是:该样条平滑是对投影后的2D坐标进行处理的,并不针对原始坐标(即 其不是一个球面样条插值)。

下图中,左图使用了 -W2p 选项,右边使用了 -W2p+s

cat << EOF > line.txt
0       0
1   1
2   0.5
4   2
2   1.5
EOF

gmt begin line_bezier
gmt plot line.txt -R-0.25/4.25/-0.2/2.2 -JX3i/1.25i -W2p
gmt plot line.txt -Sc0.1i -Gred -Wfaint
gmt plot line.txt -W2p+s -X3i
gmt plot line.txt -Sc0.1i -Gred -Wfaint
rm line.txt
gmt end show
../../_images/88582c94b5009705e7e96d0affd624a2.png

线条自动样条插值示意图

端点箭头

默认情况下,在绘制线段时,线段的两个端点并没有什么特别的。使用 +v 子选项, 可以在线段的一端或两段绘制端点箭头。该子选项的语法为: +v[b|e]vspecs

  • 默认会在线段两端都加上箭头,b|e 表示只绘制开头或结尾的箭头

  • vspecs 用于指定端点箭头的属性,详见 矢量/箭头

下图中细线是通常绘制的线段,粗线使用的选项是 -W2p+o1c/500k+vb0.2i+gred+pfaint+bc+ve0.3i+gblue

Source Code

../../_images/c5a83e4ed6d71b6c1350c779fd35734e.png

线条端点箭头示意图

其它属性

除了上面提到的属性之外,GMT中还有一些参数可以影响线段的外观。这些参数包括: