Tgif FAQ - オブジェクトの横断


注意:

このページは、 Tgif ホームページ にある FAQ のページ を、竹野研究室 (主に竹野) が日本語に翻訳したものです。 オリジナルサイトの作者 (Bill Cheng 氏) の許可の元、ここに公開します。

FAQ 以外のページへのリンクは、 ほとんどがオリジナルページへのリンクになっていますので、 日本語訳はされていません (ただし、そのうち主なものは今後日本語訳することも考えています)。 また、ここに書かれているリンク先やソフトウェアなどの情報は、 書かれてからかなり年月が経っていますので、 リンク切れになっていたり、 現在の状況には合わない情報である可能性もあります。

この日本語訳のページに関する意見や質問は、 オリジナルサイトの作者ではなく、 竹野 にお願いいたします。

(05/31 2017)

このページのオリジナルサイト: http://bourbon.usc.edu/tgif/faq/intersect.html

目次へ戻る


 
ベン図の異なる領域を 異なる色で塗って GIF ファイルを作りたいのですが、 tgif ではどうすればできますか。
一般的に、任意の幾何学的なオブジェクトの共通部分となるオブジェクトを 作るのは難しいです。(もちろん、長方形の共通部分ならば簡単です。) 任意のオブジェクトの共通部分を表す、 ベクトル形式のオブジェクトが欲しいのなら、 tgif ではそれは一般的には無理です。 しかし、例えば円のような標準的な形のオブジェクトなら それを作る方法は何通りかあります

もし欲しいのが GIF ファイルでいいのなら、なんの問題もありません。 以下を読んでください。

その方法を説明するのに最もいいのは、 多分例で示すことだろうと思いますので、 3 円のベン図の異なる色の領域を作る手順を紹介していきます。 まず最終的な GIF 画像を以下に示します。

image of the final Venn Diagram

  1. まず、最終的な画像の背景を透明化するか決める必要があります。 そうしたい場合は、あなたの画像に使用しない色を選択してください。 例えば、"#ff9900" を透明にする色として選びます。 以下の X デフォルト値を設定します (giftrans を持っている場合):
        Tgif.XpmToGif: xpmtoppm %s | ppmtogif | giftrans -t "#ff9900"
    詳細は、GIF 出力と Tgif.XpmToGif を参照してください。

  2. 次に 3 つの共通部分を持つ円を、塗り潰しパターン NONE で、 色を黒にして書きます。 そして "foo.obj" というファイルに保存します。

  3. レイアウトメニューの Print/ExportInColor (カラーで印刷/出力) メニュー項目がチェックされていなければ、 それをチェックします。

  4. ファイルメニューの Print/ExportFormat (印刷出力フォーマット) サブメニューから X11 bitmap/pixmap を選んで 印刷/出力フォーマットを X11 ピクスマップに設定します。

  5. ファイルメニューから Print() を選択して、 現在のファイルを X11 ピクスマップファイルとして出力します。 "foo.xpm" という名前のファイルができます。

  6. ファイルメニューの Import (ファイル挿入) サブメニューから ImportPixmap() (XPixmap 挿入) を選択して "foo.xpm" を選択して取り込みます。

  7. 編集メニューの ImageProc (画像処理) サブメニュー項目上で 左か右にドラッグして、 ImageProc メニューをピン止めします。

  8. 取り込んだピクスマップオプジェクトを選択し、 領域を塗り潰すのに使う色を選択し、 ピン止めした ImageProc メニューから FloodFill() (塗りつぶし) を選択します。 その選択した色で塗り潰したい すべての領域の上で左マウスボタンをクリックします。 この作業を終わるまで繰り返します。

  9. 最後に、ファイルメニューの Print/ExportFormat サブメニューから GIF 形式を選択して、 印刷/出力フォーマットを GIF にします。 ピクスマップオブジェクトを選択し、 ファイルメニューから PrintSelectedObjs() (選択対象の印刷) を選択します。 "Cannot find any 'href=' attributes... Imagemap not generated..." というメッセージは無視してください。