graphics_entities グラフィックスエンティティデータ構造体の説明

## 説明

Scilabでは, グラフィックウインドウおよびそのウインドウに描画されたもの は階層的なエンティティにより表されます. 最上位の階層は `Figure` (図)です. 各 `Figure`は,1個以上の`Axes`型の子を定義します. 各`Axes` エンティティは `Polylines`, `Rectangles`, `Arcs`, `Segs` ,...のような 一連の葉(leaf)エンティティを有します. エンティティの再帰的な集合の`Compound`型を有することも可能です. グラフィックモードの主要な関心事は,プロパティの変更をより簡単に することです.このグラフィックモードは, データ,座標やスケーリング,色や外観のようなオブジェクトのプロパティを 最初のグラフィックコマンドを再度実行することなく制御するために 複数の高レベルグラフ作成ルーチン を提供します (set, get参照)

グラフィックエンティティは`handle`型のScilab変数に 対応します. このハンドルは, 作成されたグラフィックエンティティの各インスタンスを示すユニークなIDです. このハンドルを用いて,`set` および `get` ルーチンによりエンティティの プロパティにアクセスすることができるようになります. ハンドルはグラフィックオブジェクトを操作したり,移動したり, コピーまたは削除する際にも使用されます.

Console, root, mouse:

  With its menus, the console may be considered as a special graphic windows. Its menus and some graphical meta options may be addressed through its handle as returned by `c=get(0)`. See Console properties for details.

  The root object is a virtual graphical object used to get the computer screen properties. Its handle is the same as the console's one: `r=get(0)`, but the screen properties can be addressed only in read-only mode. See Root properties for details.

  On Windows, some additional screen, windowing and mouse parameters may be retrieved throught the getsystemmetrics function.

Figure:

  `Figure` エンティティは,グラフィックエンティティ階層の最上位です. このエンティティは図(figure)本体のパラメータを定義し, 同時に子を作成する際のデフォルト値も定義します. figureの子は`Axes`エンティティです.

  カレントのfigure(描画指示が送信されるfigure)のハンドル は,`get("current_figure")`により取得でき, `set("current_figure",h)`により設定できます. ただし, `h` は figureのハンドルまたは `figure_id` のどちらかです. 後者について,その図がまだ作成されていない場合には,作成されます.

  詳細はfigure_properties を参照ください.

Axes:

  `Axes` エンティティはグラフィックエンティティ階層の第二レベルです. このエンティティは座標系の変化に関するパラメータおよび 軸に描画されるものを定義し, 同時に,作成される子のデフォルトのパラメータを定義します. 詳細は,axes_propertiesを参照ください. カレントの `Axes`のハンドルは, `get("current_axes")`により取得できる可能性があります.

Compound:

  `Compound` エンティティは単なる子のベクトルで, プロパティを1つだけ(visibilityプロパティ)有しています. これは,一連のエンティティを集約するためのグルーとして 使用されます.

  glue, unglueおよび Compoundプロパティ 関数を 参照ください.

Axis:

  `Axis`エンティティはグラフィックエンティティ階層の葉です. このエンティティは軸の目盛および外観に関するパラメータを定義します.

  詳細は,axisプロパティ を参照ください.

Polyline:

  `Polyline`エンティティはグラフィックエンティティ階層の葉です. このエンティティは,2次元および3次元ポリラインおよび ポリラインの拡張描画プロパティを定義します.

  詳細は,polylineプロパティ を 参照ください.

Arc:

  `Arc`エンティティはグラフィックエンティティ階層の葉です. このエンティティは楕円および楕円の一部を定義します.

  詳細はarcプロパティ を参照ください.

Rectangle:

  `Rectangle`エンティティはグラフィックエンティティ階層の葉です. このエンティティは矩形および塗りつぶされた矩形のパラメータを 定義します.

  詳細はrectangleプロパティ を参照ください.

Surface:

  `Surface`エンティティはグラフィックエンティティ階層の葉です. このエンティティはサブタイプ `Fac3d` または `Plot3d`を有します. このエンティティは 3次元プロットのパラメータを定義します.

  詳細はsurfaceプロパティ を参照ください.

Fec:

  `Fec`エンティティはグラフィックエンティティ階層の葉です. このエンティティは2次元有限要素プロットを表します.

  詳細は fecプロパティ を参照ください.

Grayplot:

  `Grayplot` エンティティはグラフィックエンティティ階層の葉です. このエンティティは色および画像による曲面の二次元プロット表します.

  詳細は grayplotプロパティ を参照ください.

Matplot:

  `Matplot`エンティティはグラフィックエンティティ階層の葉です. このエンティティは整数行列による二次元プロット表します.

  詳細は Matplotプロパティ を参照ください.

Segs:

  `Segs`エンティティはグラフィックエンティティ階層の葉です. このエンティティは,一連の色付の線分または色付の矢印のパラメータを定義します.

  詳細は segsプロパティ を参照ください.

Champ:

  `Champ`エンティティはグラフィックエンティティ階層の葉です. このエンティティは2次元ベクトルフィールドに関するパラメータを定義します.

  詳細は champプロパティ を参照ください.

Text:

  `Text`エンティティはグラフィックエンティティ階層の葉です. このエンティティは文字列の描画に関するパラメータを定義します.

  詳細は textプロパティ を参照ください.

Label:

  `Label`エンティティは`Axes`グラフィックエンティティの 子です.このエンティティはグラフィックウィンドウに描画される x, y, z 軸のラベルとタイトルを定義します.

  詳細は Labelエンティティプロパティ を参照ください.

Legend:

  `Legend` エンティティはグラフィックエンティティ階層の葉です. このエンティティは,`plot2dx`グラフに描画される 凡例に関するパラメータを定義します. このエンティティはまだ開発中です.

  詳細は,Legendエンティティプロパティ を参照ください.

Light:

  Scilabにおける照明は, 光線と面の物性の間の相互作用により面の外観が対話的に指定されるように 実世界の照明を近似します. 実世界の照明を模擬することは複雑で計算負荷が高いため, 簡単化されたモデルが使用されます.

  詳細は,lightエンティティプロパティを参照ください.

### Other entities

Interactive components (uicontrol)

  Scilab allows to create graphical interactive components like sliders, spinners, editable tables, editable texts on graphics, checkboxes, groups of radio buttons, listboxes, popup menus, push buttons, etc. These objects are direct children of the figure where they are defined. Their properties can be set and tuned through their handles as for any other graphical objects. Please see uicontrol properties for details.

UI menus

  uimenu() allows to add and manage some menus on the menu bar of any graphical figure. `uimenu()` returns a handle through which the contents and properties of the created menu can be addressed. Please see uimenus properties for details.

## 例

    //この例を行単位で実行してください

    // エンティティモードで図を作成. Figureエンティティのハンドルを取得し,そのプロパティを表示
    f = scf()
    a = f.children //Axisの子のハンドル
    x = (1:10)';  plot2d(x,[x.^2 x.^1.5])
    e = a.children // 2つのポリラインからなるCompound

    p1 = e.children(1)   // 直近に描画されたポリラインのプロパティ
    p1.foreground = 5;   //  ポリラインの色を変更
    e.children.thickness=5; // 2つのポリラインの幅を変更

    delete(e.children(2))

    move(e.children,[0,30]) //ポリラインを変換

    a.axes_bounds=[0 0 0.5 0.5];

    subplot(222) //新たにAxesエンティティを作成
    plot(1:10);
    a1 = f.children(1); //ハンドルを取得
    copy(e.children,a1); //最初のプロットのポリラインを新しい軸にコピー
    a1.data_bounds = [1 0;10 100]; //軸の範囲を変更

    scf(10); // figure_id=10の新規図を作成
    plot3d() // 描画データは figure 10に送信される
    scf(f);  // 前の図をカレントの図にする
    plot2d(x,x^3)  //描画データは最初の図に送信される

## 参照

- set
- get
- move
- delete
- ged
- オブジェクトエディタ
- plot
- surf
- getsystemmetrics
- setlookandfeel