8.19 -p 选项

-p 选项用于控制2D底图或3D底图的透视视角。

对于一个2D底图(比如二维平面内的矩形)或者一个3D底图(比如三维空间内的立方体),从不同的方向看时会看到不同的形态。该选项用于控制从怎样的透视视角去看一张图。其语法为:

-p[x|y|z]<azim>[/<elev>[/<zlevel>]][+w<lon0>/<lat0>[/<z0>]][+v<x0>/<y0>]

<azim> 指定视角的方位角,即相对于北方向顺时针旋转的角度,默认值为180。

<elev> 指定视角的海拔,即视角相对于纸张平面向上旋转的角度,其取值范围为 0到90(不含0),其中0表示视角与纸张平面平行,90表示视角垂直于纸张平面,默认值为90。

下图给出了2D底图下透视视角取不同值时所看到的底图。

Source Code

../../_images/perspective-gmtplot-0.png

对于3D底图而言(使用了 -JZ 选项),默认会在Z轴底部绘制XY平面的边框。

  • 设置 <zlevel> 则可以指定在 Z=<zlevel> 平面内绘制边框。
  • -px|y|z 则分别用于指定绘制 YZ 平面、XZ平面或XY平面。默认为 -pz 即绘制XY平面

下图给出了3D底图上使用不同的 -p 选项绘制出来的效果图。绘制底图使用的命令为:

gmt psbasemap -R0/10/0/10/0/20 -JX3c -JZ3c -Baf -Bzaf -BwsENZ1+b -p135/40 > xxx.ps

Source Code

../../_images/perspective-gmtplot-1.png

在绘制动画时,如果不同帧使用的 -p 透视参数不同,则由于投影的问题可能会导致底图在纸上的位置出现不规则运动。可以有三种方式解决:

  1. 加上 + 使得数据范围的中心点固定在纸张的中心
  2. 加上 +w<lon0>/<lat0>/<z> 将地图上的某个点固定在纸张的中心
  3. 加上 +v<x0>/<y0> 使得数据范围的中心点或地图上的某个点,在投影后的位置始终固定在纸张上的 <x0>/<y0>

除此之外,若 -p 选项后不接任何参数,则其会继承前一GMT绘图命令的 -p 参数。