〔前の画面〕
〔クリックポイント〕 〔最新の一覧〕
〔全て読んだことにする〕〔全て読んだことにして終了〕 〔終了〕
2004/8/15(日)21:31 - 竹の - nolm01.iee.niit.ac.jp - 2269 hit(s)
竹の> むしろ 3.7.2 とかではちゃんと出るようです。303 で紹介し
竹の> た gnuplot-3.8j での対処がアダになってるのでしょうか。
やはりそのようです。term/post.trm に以下のように書かれています。
----- ここから -----
/* Ghostscript has a "pile-up of rounding errors" bug: a sequence of many
* rmove's or rlineto's does not give the same line made aby move's or
* lineto's.
* Therefore, let us do a stroke very often. There was a case when 400
* rlineto's were too much, so let's go a little bit higher than the default
* function sampling rate in gnuplot. */
if (ps_path_count >= 105) {
----- ここまで -----
そして以前はこの 105 が 400 でした。これを 400 に戻すとそれ
なりの破線になりますが、現在の 105 だと stroke 命令が 105 個
の rlineto,moveto 毎 (折れ線の各点の定義) に行なわれ、今回使
用した例だと 61 回も stroke (実際の破線の破線の描画) が行なわ
れています。破線の切れ目が全体でおよそ 150 個くらいですから、
150/60=2.5 個の破線線分に一回ずつ新たな破線を書き始めているこ
とになり、よって綺麗な破線にならないことになっているようです
(かなり空白部分を潰してしまう)。
この 105 を 400 にすると stroke は 16 個になるので、それらし
い破線にはなるのですが、上にあげた post.trm のソースのコメン
トにあるようにそれはあまり良くないようです (gs にとって)。
よって、対処はやはり
竹の> とりあえずは間引くと良いようです。
しかなさそうですね。なお、点の個数は今回テストに使った 10000
点でも実際には PS の最小単位に変換される段階でパス数は減って
6400 点くらいになります。よって、今回の問題は元々の点の数が
6400 点位でも同じような問題が起こるでしょう。
竹の> としてみてください。every 2 位でも良さそうです。
every 2 の時は stroke は 48 個もありますが、これはたまたま今
回の例の場合にはたまたま綺麗に見えるような数だったようです
(丁度 150/48 が整数に近かったためでしょう)。本当はやはりもっ
と間引いた方が良さそうです。
竹の> # どうもバグっぽい
ということで、バグではなく、むしろそれなりの理由を持つ現在の
仕様と言った方が良いようです。
〔ツリー構成〕
┣【315】 re(14):eps出力で波線間隔の変更 2004/8/15(日)21:31 竹の (1929) |
〔前の画面〕
〔クリックポイント〕 〔最新の一覧〕
〔全て読んだことにする〕〔全て読んだことにして終了〕 〔終了〕
※ 『クリックポイント』とは一覧上から読み始めた地点を指し、ツリー上の記事を巡回しても、その位置に戻ることができます.