ペン

Submitted by kashima on Fri, 07/27/2018 - 09:03

ペンの指定方法

-W[width[c|i|p|m]],[color],[texture[c|i|p|m]]

ペンは線の幅、色、そしてスタイル(パターン)を指定します。

width

width は線幅を指定します。規定値では現在のデバイスの解像度(.gmtdefautls4 ファイルの中の DOTS_PR_INCH パラメータで指定)が単位です。cip、または m を付けて、cm、インチ、ポイント(1/72インチ)、及びm (メートル)を単位として指定できます。最小の幅はゼロを与えて指定できますが、実際の線幅はデバイスに依存します。また、いくつかの定義済みのペン名で、線幅を指定することもできます。

定義済みのペン幅
pen name width pen name width pen name width pen name width
faint 0 default 0.25p thinnest 0.25p thinner 0.50p
thin 0.75p thick 1.0p thicker 1.5p thickest 2p
fat 3p fatter 6p fattest 12p obese 18p

color

color は線色を指定します。

  1. グレイスケールで指定。0-255 の範囲の数値で明るさを指定します。([0]が黒、[255]が白で線形に変化します)。
  2. RGBで指定。red/green/blue の書式で指定します。各値の範囲は 0-255 です。例えば 0/0/0 は黒、 255/255/255 は白、 255/0/0 は赤となります。
  3. HSVで指定。hue-saturation-value の形式で指定します。hue は 0-360 の値を採り、saturationvalue は 0-1 の値を採ります。
  4. CMYKで指定。cyan/magenta/yellow/black の形式で、それぞれの値の範囲は 0-100 (%) です。
  5. 色名。663 の色名のうちのひとつを指定します。man gmtcolors で全ての色名を知ることができます。ほんの一部を示すと、 whiteblack、及び [light|dark]{red, orange, yellow, green, cyan, blue, magenta, gray|grey, brown}が使えます。大文字小文字は区別しません。

texture

texture は線のスタイルを指定します。

スタイルは "."、"-"、及びその組み合わせで指定することができます。"." は点線、"-" は破線、".-" は一点鎖線となります。点線の長さは線幅と同じ、破線の長さは線幅の8倍、間隔は線幅の4倍となります。

より詳細なスタイルは、string:offset の形式で指定します。string はアンダースコア(_)で区切られた数値列です。数値は、線分とその間隔のパターンを長さで示します。offset は線の描画開始点のオフセット値で、省略できません。

事例

echo 0 0 > temp.xy
echo 3 0 >> temp.xy
set L1=-W1p,127
set L2=-W1p,red,-
set L3=-W1p,blue,.
set L4=-W2p,0/128/0,..-
set L5=-W2p,20/80/20/0,1_0.1:0c
set L6=-W2p,180-0.8-0.8,20_4_4_4:0p
psxy temp.xy -JX10c/10c -R0/10/0/10 %L1% -K -Y10 -P > lines.eps
echo 3.4 0 12 0 0 LM %L1% | pstext -JX -R -N -K -O >> lines.eps
psxy temp.xy -JX10c/10c -R0/10/0/10 %L2% -K -O -Y-1 >> lines.eps
echo 3.4 0 12 0 0 LM %L2% | pstext -JX -R -N -K -O >> lines.eps
psxy temp.xy -JX10c/10c -R0/10/0/10 %L3% -K -O -Y-1 >> lines.eps
echo 3.4 0 12 0 0 LM %L3% | pstext -JX -R -N -K -O >> lines.eps
psxy temp.xy -JX10c/10c -R0/10/0/10 %L4% -K -O -Y-1 >> lines.eps
echo 3.4 0 12 0 0 LM %L4% | pstext -JX -R -N -K -O >> lines.eps
psxy temp.xy -JX10c/10c -R0/10/0/10 %L5% -K -O -Y-1 >> lines.eps
echo 3.4 0 12 0 0 LM %L5% | pstext -JX -R -N -K -O >> lines.eps
psxy temp.xy -JX10c/10c -R0/10/0/10 %L6% -K -O -Y-1 >> lines.eps
echo 3.4 0 12 0 0 LM %L6% | pstext -JX -R -N -O >> lines.eps

line sample