SourceForge Forum
norep****@sourc*****
2014年 10月 8日 (水) 20:59:35 JST
このメールはSourceForge.JPのフォーラムからの自動転送です。 注意: このメールに返信しても単に無視されます。 フォーラムメッセージへの返信は以下のURLにアクセスしてください: https://sourceforge.jp/projects/eos/forums/31695/36047/74558/ 投稿者: Takuo Yasunaga (tacyas) [メッセージ #74556 への返信] > 前提として確認して頂きたいことがありますので、実質2 つの質問事項となります。 > > > 【質問1】前提の質問です。 > あるPostScriptファイル開いたところの"gsave"と"grestore"がそれ ぞれ連続で書かれていましたが、この2つはスコープ(括弧) のような働きができるのでしょうか。 > > 例えば、 > > gsave > 1.000000 1.000000 scale > 0.000000 0.000000 translate > 処理1 > gsave > 2.000000 2.000000 scale > 3.000000 3.000000 translate > 処理2 > grestore > 処理3 > grestore > > 上記のような構文があった場合 > 処理1, 3は1.000000 1.000000 scale, 0.000000 0.000000 translate、 > 処理2は2.000000 2.000000 scale, 3.000000 3.000000 translate > の設定で処理が行われるのでしょうか。 > > -経緯- > これまでgsaveは現在の設定を保存、grestoreは保存したデー タに戻るとだけ思って、複数の設定を記憶できると思って いませんでしたので、上記の疑問が出てきました。 > gsave/grestoreは、グラフィックスのためのスタックを利用す る方法です。 したがって、gsaveがpush, grestoreがpopと思って頂ければと思います。 スタックですので、LIFO(Last In FIrst Out)です。grestoreで、最後のgsaveの 前の状態が戻ってきます。 > > 【質問2】gsave, grestoreの動作が質問1の推測通りだった場合の質問です。 > /src/Objects/DataExpress/psFile/src/psFileImage.cにて > > psFileImageSpaceRotateRestoreとpsFileImageSpaceRestoreは同じ処理で、 > grestoreをpsファイルに記述するだけですが、 > これはpsFileImageSpaceRotateSetやpsFileImageSpaceSetのうちどちらの 処理の終わりを意味するのかをはっきりさせるためにあえ て別々にしているのでしょうか。 > > その場合は、 > SetとRestoreは常に対に使用するということですよね。(こち らの注意事項をドキュメントに記載しようと思います) はい。どちらの場合も、grestoreで戻すことが出来ます。 Setと組になっていると思っていただければよく、想像の通 りです。 中身がどうなっているか知らなくても、Set/Restoreの組み合わ せで済ませてもらいたく、将来、grestore以外の命令がはいる 可能性もあるとお考え頂ければと思います。 ______________________________________________________________________ Eos-Image Analysis Environment プロジェクトはフォーラムへの投稿をプロジェクトメンバーに メール送信するように設定されています。 設定の詳細に関しては、プロジェクト管理者に確認してください。