# figure_properties

グラフィックエンティティプロパティの説明

## 説明

figureエンティティはグラフィックエンティティ階層の最上位です. このエンティティにはScilabグラフィックオブジェクトの表示に 関する多くの要素を制御するために設計された多くのプロパティが 含まれています. これらのプロパティは,図(figure)自体に関する情報を含むプロパティと, 子作成時のデフォルト値の設定に関連するプロパティの 2つのカテゴリに分けることができます.

figure プロパティ:
  children:

    このハンドルは図(figure)の子のベクトルを表します. 図の子は全て`"Axes"`であることに注意してください. また,(scf コマンドにより)図のエンティティを作成する際, 同時に `Axes`エンティティも一つ作成されることも覚えておいてください.

  figure_style:

    このフィールドの値は図(figure)の様式を定義します. Scilab 5.0以降, 古いグラフィックモードは無効にされています. このプロパティは互換性のために残されており,変更することはできません.

  figure_position:

    このフィールドはスクリーン上でのグラフィックウインドウのピクセル単位の 位置を保持します. これはウインドウの左上隅の位置を定義するベクトル`[x,y]`です. 位置 `[0,0]` は画面の左上隅です.

    グラフィックウインドウの初期位置はデフォルトの figure エンティティ (gdf参照)により指定されます. 唯一の例外は, デフォルトの図の値`figure_position`が`[-1,-1]` の場合です. この場合,グラフィックウインドウの初期位置はウインドウシステムにより自動的に 設定されます.

  figure_size:

    このプロパティは画面のグラフィックウインドウのピクセル単位の 大きさを制御します.この大きさはベクトル`[width,height]` です.

  axes_size:

    仮想グラフィックウインドウにおけるピクセル単位の大きさを 指定する際に使用されます. この大きさはベクトル `[width,height]` です. 仮想グラフィックウインドウは画面で実際に可視となる領域よりも 大きくなります. このプロパティは図が他の要素に結合されている場合には修正することができません.

  auto_resize:

    このプロパティはグラフィックウインドウの大きさの変更動作 を定義します. この値が `"on"`の場合,`axes_size` プロパティは `figure_size`に等しくなり, 子である軸自動的に拡大・縮小されます. この値が`"off"` の場合, `figure_size`が変更された場合でも `axes_size`は変更されません.

  viewport:

    図の可視部分の位置.

  figure_name:

    このフィールドは図の名称を保持します. この名称はグラフィックウインドウ上の最上部に表示される 文字列です. この名称には文字列`%d`を一つ含めることができ, この部分は`figure_id`で置換されます. その他の`%`文字のインスタンスは名称の中で使用できません.

  figure_id:

    このフィールドは図のIDを保持します. これは図の生成時に設定される整数で,後で変更することはできません.

  info_message:

    この文字列はグラフィックウインドウの情報バーに表示されるテキストを指定します.

  color_map:

    この図で使用されうカラーマップを定義するプロパティ. カラーマップは `m` 行 `3`列の行列です. `m`は色の数です.色番号 i は `R`, `G`, `B`の3要素で 指定し,それぞれ, 0 から 1の間の赤,緑,青の輝度に対応します.

  pixmap:

    このプロパティはグラフィックウインドウのpixmapステータスを制御します. このプロパティの値が`"off"`の場合, グラフィックスは画面に直接表示されます. `"on"`の場合, グラフィックスは pixmap上に表示され, コマンド `show_pixmap()`によりグラフィックウインドウに 転送されます.

  pixel_drawing_mode:

    このフィールドは画面上のピクセルの描画で使用されるビット単位の処理を定義します. デフォルトのモードは `copy`で,ピクセルは必要に応じて描画されます. より一般的に言うと, ビット毎の処理は,ソースピクセルの色と画面上の既存のピクセルの色の間で行われます. 次の処理があります : `"clear"`, `"and"`, `"andReverse"` , `"copy"`, `"andInverted"` , `"noop"` , `"xor"` , `"or"` , `"nor"` , `"equiv"` , `"invert"` , `"orReverse"` , `"copyInverted"` , `"orInverted"` , `"nand"` , `"set"`.

  anti_aliasing:

    このプロパティはグラフィックの品質を改善する際に使用される アンチエイリアス処理のレベルを制御します. このプロパティが "off" に設定された場合,アンチエイリアス処理は無効になります. アンチエイリアス処理を有効にするには,"2x", "4x", "8x"または "16x"のどれかを 指定することが必要です. この場合, この値はアンチエイリアスのレベルを意味します.例えば, 例えば, "16x" は "2x"よりも高い品質となります. より高いアンチエイリアスのレベルを指定することにより画像の品質は改善されますが, グラフィック性能は低下します.

  immediate_drawing:

    このプロパティは図の表示を制御します. この値は `"on"` (デフォルトモード) または `"off"`です. (複数の描画や再描画を適用することにより)グラフィックスコマンドが大量に連続する場合に, 表示を遅延させるために使用されます.

    Note that, when using `drawlater` または `drawnow` コマンドを 使用した場合, カレントの図のプロパティの値を変更することに注意してください (それぞれ,この値を`'off'` または `'on'`に変更します).

  background:

    このプロパティは図の背景を制御します. カレントのカラーマップに関連する添え字を値として指定します.

  event_handler

    文字列. イベントを処理を受け持つScilab 関数の名前. 空の文字列を指定するとイベントハンドルが無効となることに注意してください. イベントハンドらに関する詳細は イベントハンドラ関数 ヘルプを 参照してください.

  event_handler_enable

    イベントハンドラを有効または無効にします. 値は "on" または "off" のどちらかです.

  user_data:

    このフィールドは図のデータ構造に何らかのScilab変数を保存したり, 取得したりするために使用することができます.

  tag:

    このフィールドは一般に制御を識別するための文字列を保存するために使用できます． これにより"名前"を指定することが可能となります. 主にfindobj()との組み合わせで使用されます.

子のデフォルト値:
  visible:

    このフィールドは, 図の内容が再描画されるかどうかを定義します. この値は `"on"` または `"off"`となります.

  rotation_style:

    このフィールドは "3D Rot"(3次元回転) ボタンに関係します. デフォルトは,選択された3次元プロットのみが回転することを意味する `unary`となっています. この値は,全ての3次元プロットが回転することを意味する `multiple` とすることができます.

デフォルト値に関する注記 :

    上記リストに提示した全てのプロパティとフィールドは, figureモデルに保存されたデフォルト値から継承されたものです これらのデフォルト値は,参照したり,変更したりすることができます. これを行うには,`get("default_figure")`コマンドを 使用してください.これにより,figureモデルのグラフィックウインドウが 取得できます. このコマンドにより特定のグラフィックウインドウが作成されるわけではない ことに注意してください. 次に作成される図はこのモデルから継承されます (下記の例2を参照).

## 例

    lines(0) // disables vertical paging

    //Example 1
    f=get("current_figure") //get the handle of the current figure :
                            //if none exists, create a figure and return the corresponding handle
    f.figure_position
    f.figure_size=[200,200]
    f.background=2
    f.children  // man can see that an Axes entity already exists
    delete(f);
    f=gcf(); // macro shortcut <=> f=get("current_figure")
    f.pixmap = "on" // set pixmap status to on
    plot2d() // nothing happens on the screen...
    show_pixmap() // ...display the pixmap on screen

    //Example 2 : default_figure settings
    df=get("default_figure") // get the default values (shortcut is gdf() )
    // Let's change the defaults...
    df.color_map=hotcolormap(128)
    df.background= 110 // set background toa kind of yellow (Note that we
                       // are using a color index inside the color_map previously redefined)
    scf(122); // creates new figure number 122 with the new default
    plot2d()
    scf(214);
    t=-%pi:0.3:%pi;
    plot3d(t,t,sin(t)'*cos(t),35,45,'X@Y@Z',[15,2,4]);

## 参考

- lines
- set
- get
- scf
- gcf
- gdf
- gca
- gda
- axes_properties
- show_pixmap
- clear_pixmap
- hotcolormap
- event handler functions