-p 选项

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

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

-p[x|y|z]azim[/elev[/zlevel]][+wlon0/lat0[/z0]][+vx0/y0]

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

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

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

Source Code

../../_images/ca58549997e50a868863b044752fccca.png

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

  • 设置 zlevel 则可以指定在 Z=zlevel 平面内绘制边框

  • -px|y|z 则分别用于指定绘制 YZ 平面、XZ平面或XY平面。默认为 -pz 即 绘制XY平面

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

gmt basemap -R0/10/0/10/0/20 -JX3c -JZ3c -Baf -Bzaf -BwsENZ1+b -p135/40 -pdf 3D-map

Source Code

../../_images/07b049b9426fe8cf273c517540483ae5.png

警告

-px-py 存在已知BUG,会导致YZ平面或XZ平面无法放置到正确的位置处, 目前这一BUG尚未解决。

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

  1. 加上 + 使得数据范围的中心点固定在纸张的中心

  2. 加上 +wlon0/lat0/z 将地图上的某个点固定在纸张的中心

  3. 加上 +vx0/y0 使得数据范围的中心点或地图上的某个点,在投影后的位置始终 固定在纸张上的 x0/y0

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