「ぎょーむ日誌」目次に戻る | KuboWeb top に戻る | twilog | atom

ぎょーむ日誌 2001-03-14

苦情・お叱りは, たいへんお手数かけて恐縮ですが, 久保 (kubo@ees.hokudai.ac.jp) までお知らせください.

2001 年 03 月 14 日 (水)

	 gnuplotの吐くpostscriptは素直なので、簡単にエディットできます。ビット
	マップが埋め込まれてないので。
	 40行目付近の、LT0とかをいじると、線種を変えられます。
	 たとえば、色違いの実線に全ての系列をそろえたいときは、LT0とかLT1とかの
	直後の[]内を消してやれば、そうなります。
	 gnuplotの吐くps(eps)は、先のメールにも書きましたが、ラインに関してはか
	なり素直です。
	LT0とかLT1とかの定義を書き換えてやれば、破線の種類や色を簡単に変えること
	ができます。
	 では、塗りつぶしはどうだろうかと思ってpsをじーっと見ると、どうも
	gnuplotの吐くpsは、「四角形を描く」のではなく、四角形を4本の線で表してい
	ます。
	 そして、各ページについてどうも”一筆書き”をやっているふしがあります。

	 ページの最初で、まずフォント類をかきます。それから線描画を始めるのです
	が、

	LTb
	1980 1144 M
	2312 0 V
	0 5528 R
	-2312 0 R
	0 -5528 V

	(中略)

	LT0
	1980 1144 M
	0 1 V
	578 0 V
	0 -1 V
	-578 0 V
	578 0 R

	(中略)

	LT1
	1980 1144 M
	578 0 V
	-578 0 V
	578 0 R
	0 20 V
	578 0 V
	0 -20 V
	-578 0 V
	578 0 R

	(中略)

	stroke
	grestore
	end
	showpage
	(↑ページ終わり)

	 となっています。Mは絶対座標の移動で、Vはそこからの相対値で線を書き、R
	はそこからの相対値で移動します。LTbは黒の線、LT0とLT1はそれぞれ系列1と
	系列2の線(line type)です。
	 つまり、各系列は初期の座標を決めた後、そこからの相対座標で4本の線を書
	き、相対座標で移動して、ということを繰り返すわけです。しかも、同一ページ
	では、それぞれの系列は一回きりで書いてしまうわけです。

	 で、これを塗りつぶしにする手口ですが、存外簡単で、まず、20行目あたりの
	定義を行っているらへんで、

	/FL {eofill} def

	 をもぐりこませます。

	 そして、LT0やLT1の一筆書きの最終行に、

	1.000 UL

	 という記述がありますので、この直前にFLをもぐりこませます。

	FL 1.000 UL

	 これで、塗りつぶしができます。

	 複数ページあれば、FLのもぐりこませは各ページでやる必要があります。
	 騙されたと思っていちど試してみてください。
[PostScript file 直接操作]
たしかにやってみると塗りつぶされた. 元の図は線だけで構成されていたのである. このように出力するためには少々の工夫が必要であり, そのように試行錯誤してるうちに 「言語」としての PostScript の意味まで 少しずつわかってくるのである.


KuboLog | KuboWeb