Go to the first, previous, next, last section, table of contents.

### `ifplot`, `conplot`, `plot`, `polarplot`, `plotover`

`ifplot(func [,geometry] [,xrange] [,yrange] [,id] [,name])`
  :: 2 変数関数の実数上での零点を表示する.
`conplot(func [,geometry] [,xrange] [,yrange] [,zrange] [,id] [,name])`
  :: 2 変数関数の実数上での等高線を表示する.
`plot(func [,geometry] [,xrange] [,id] [,name])`
  :: 1 変数関数のグラフを表示する.
`polarplot(func [,geometry] [,thetarange] [,id] [,name])`
  :: 極形式で与えられた曲線を表示する.
`plotover(func,id,number)`
  :: すでに存在しているウィンドウへ描画する.

return
  整数
func
  多項式
geometry xrange yrange zrange
  リスト
id number
  整数
name
  文字列

- `ifplot()` は, 2 変数関数 func の実数上での零点の グラフの表示を行う. `conplot()` は, 同様の引数に対し, 等高線の表示を行う. `plot()` は 1 変数関数のグラフの表示を行う. `polarplot()` は 極形式 r=f(theta) で表された曲線のグラフの表示を行う.
- これらは OpenXM サーバとして実現されている. UNIX 上では ``ox_plot'` が, Windows 上では ``engine'` がこれらの機能 を提供しており, これらは Asir の標準ライブラリディレクトリにある. アクティブな ``ox_plot'` の id が id として指定された場合, そのサーバが用いられる. id の指定がない場合には, 起動されて いるサーバのうち, ``ox_plot'` があればそのサーバが用いられる. ``ox_plot'` が起動されていない場合には, `ox_launch_nox()` が自動的に実行されて, ``ox_plot'` が 立ち上がり, それが用いられる.
- 引数の内, func は必須である. その他の引数はオプションである. オプションの形式およびそのデフォルト値 (カッコ内) は次の通り.
  geometry
    ウィンドウのサイズをドット単位で [x,y] で指定する. ([`300`,`300`]. )
  xrange yrange
    変数の範囲の指定で, [v,vmin,vmax] で指定する. (いずれの変数も [v,`-2`,`2`].) この指定がない場合, func に含まれる変数の内変数順序の上の変数 が ``x'`, 下の変数が ``y'` として扱われる. これを避けるためには xrange, yrange を指定する. また, func が 1 変数の 場合, これらの指定は必須となる.
  zrange
    `conplot()` の場合のみ指定できる. 形式は [v,vmin,vmax `[`,step `]`] で, step が指定され た場合には, 等高線の間隔が (vmax-vmin)/step となる. ([z,`-2`,`2`,`16`].)
  id
    遠隔プロセスの番号, すなわち `ox_launch()` が返した番号を指定する. (一番最近に作られ, かつアクティブなプロセスに対応する番号.)
  name
    ウィンドウの名前. (`Plot`.) 生成されたウィンドウのタイトルは name:n/m となる. これは, プロセス番号 n のプロセスの, m 番のウィンドウを意味する. この番号は, `plotover()` で用いられる.
- 一つのプロセス上で描画できるウィンドウの数は最大 128 個である.
- `plotover()` は, 指定したウィンドウ上に, 引数である 2 変数多項式の 零点を上書きする.
- 描画終了後のウィンドウ上で, マウスの左ボタンを押しながらのドラッグ で範囲を指定しボタンを離すと新たなウィンドウが生成され, 指定した 範囲が拡大して表示される. ドラッグは左上から右下へと行う. ドラッグを始めた後キャンセルする場合は, マウスポインタを始点の上か 左に持っていってボタンを離せばよい. 新しいウインドウの形は, 指定 領域と相似で, 最大辺が, 元のウィンドウの最大辺と一致するように 定められる. 以下で説明する `precise` が on の場合, 選択した領域が同一 window 上で書き直される.
- ウィンドウ内で右ボタンを押すと, その点の座標がウィンドウの下部に表示される.
- `conplot()` で生成したウィンドウにおいて, ウィンドウの右側のマーカを 中ボタンでドラッグすると, 対応する等高線の色が変わり, 右上の ウィンドウに対応するレベルが表示される.
- UNIX 版ではいくつかのボタンにより いくつかの設定変更, 操作ができる. UNIX 版では次のボタンがある.
  `quit`
    window を破壊する. 計算を中断する場合, `ox_reset()` を用いる.
  `wide (トグル)`
    現在の表示部分を縦横各 10 倍した領域を表示する. 現在表示されている範囲は この表示において中央部に長方形で示される. この表示で範囲指定を行うと, その範囲が新しいウィンドウに描画される.
  `precise (トグル)`
    選択領域を, 整数演算により, より正確に再描画する. これは, func が 有理数係数の 2 変数多項式の場合にのみ有効である. このモードでは Sturm 列 と二分法により, 区間内の零点の個数を正確に求めていくもので, デフォルトの 計算法よりも正確な描画が期待できる. ただし, 描画時間は余計にかかる場合が 多い. この説明から明らかなように, この機能は有理数係数の多項式の描画に対 してのみ有効である. ((x^2+y^2-1)^2 の描画で試してみよ.)
  `formula`
    対応する式を表示する.
  `noaxis (トグル)`
    座標軸を消す.
- ``ox_plot'` が起動されるマシンによっては, スタックを大量に使用する ものもあるため, ``.cshrc'` でスタックサイズを大きめ (16MB 程度) に 指定しておくのが安全である. スタックサイズは `limit stacksize 16m` などと指定する.
- `X` では、ウインドウの各部分について resource により 色付けや、ボタンの形を変えることができる。 resource の指定の仕方は以下の通り。（デフォルトを示しておく） `plot*form*shapeStyle` は、`rectangle, oval, ellipse, roundedRectangle` が、指定できる。

      plot*background:white
      plot*form*shapeStyle:rectangle
      plot*form*background:white
      plot*form*quit*background:white
      plot*form*wide*background:white
      plot*form*precise*background:white
      plot*form*formula*background:white
      plot*form*noaxis*background:white
      plot*form*xcoord*background:white
      plot*form*ycoord*background:white
      plot*form*level*background:white
      plot*form*xdone*background:white
      plot*form*ydone*background:white

`参照`
  section `ox_launch`, `ox_launch_nox`, `ox_shutdown`, section `ox_reset`,`ox_intr`,`register_handler`

Go to the first, previous, next, last section, table of contents.