GRAPESのHTMLマニュアルのスクリプト 部 分 スクリプト スクリプトを 用 いてパラメータや 残 像 軌 跡 を 自 由 にコントロールすることができます. GRAPESスクリプトの 特 徴 スクリプトは,GRAPES 内 で 実 行 できる 命 令 文 で, 簡 単 なプログラムを 作 ることができます. コントロールできるのは, o パラメータへの 代 入 o 基 本 図 形 や 曲 線 の 要 素 への 値 の 代 入 o 残 像 や 表 示 のコントロール o (パラメータ 値 にもとづく)グラフの 描 画 o 与 えた 波 形 を 持 つ 音 の 出 力 などで, 関 数 への 代 入 などはできません. ローカル 変 数 はありませんが,13 個 あるパラメータのすべてを 自 由 に 扱 うことができます. 条 件 文 "if then else"や 繰 り 返 し 文 "for next","while wend"が 利 用 できます. 個 々のスクリプトに 対 して,スクリプトボタンがメモエリアに 表 示 されます.これをクリック してスクリプトを 実 行 します. データパネル 上 の 指 定 したデータを 変 更 した 場 合 に, 自 動 実 行 させることもできます. ひとつのスクリプトから 別 のスクリプトを 呼 び 出 して 実 行 することができます. スクリプトの 記 述 スクリプトを 書 くには,メモウィンドウを 開 き [スクリプト]タグをクリックします. 連 続 したスクリプト 行 は,ひとつのスクリプト とみなされる. 複 数 行 からなるスクリプトは, 上 の 行 から 順 に 実 行 される. 2つ 以 上 のスクリプトを 記 述 するには,スクリ プトの 間 に 空 白 行 を 入 れる.
スクリプト 名 の 表 示 スクリプトは, 最 初 の1 行 だけが,データパネルのメモエリア 内 のボタンとして 表 示 される. したがって,スクリプトの1 行 目 にはスクリプトの 内 容 を 表 す 文 (スクリプト 名 など)を 記 述 するのが 望 ましい. スクリプトの 1 行 目 に"HideScript" 命 令 があるとき,このスクリプトは 表 示 されない. スクリプトの 実 行 と 中 断 メモエリア 内 にスクリプト 実 行 用 のボタンが 表 示 されるので,これをクリックする. スクリプトは, 先 頭 行 から1 行 ずつ 実 行 される. スクリプトの 実 行 を 中 断 するには,F1 キーを 押 す. スクリプトに OnChange 文 があるとき, 指 定 した 要 素 の 変 更 が 加 えられると 実 行 される. 記 述 方 法 1 行 には1 命 令 しか 書 くことができない. 1 命 令 を 複 数 行 に 分 けて 書 くことはできない. スクリプトにだけ 使 える 語 (For,Next,While,Wend,ClrAImg など)は, 大 文 字 でも 小 文 字 でも かまわない. パラメータ, 図 形 要 素, 式 などは,grapes の 文 法 に 従 う.したがって,パラメータは 必 ず 小 文 字 で 記 述 し,"Pi"などはそのとおりに 記 述 する 必 要 がある. 語 と 語 の 間 には, 半 角 空 白 を 入 れること. 行 頭 には 任 意 個 数 の 半 角 空 白 を 入 れることがで きる. 注 釈 は,ダブルスラッシュ"//"の 後 に 記 述 する. スクリプトの 命 令 をタイプする 代 わりに,マウ スの 右 クリックで 挿 入 することができます.
エラー 処 理 文 法 ミスは,メモウィンドウの[OK]ボタンや[ 更 新 ]ボタンを 押 したときにチェックされる. 実 行 時 エラーのうち, 計 算 結 果 がエラーになる 場 合, 実 行 中 の 行 は 無 視 され, 次 の 行 へ 制 御 が 移 る. スクリプトの 文 法 スクリプト 名 1. スクリプト1 行 目 の 記 述 内 容 がスクリプト 名 になります. 例 :1 行 目 が t := 0 のとき,スクリプト 名 は"t := 0" 2. 1 行 目 が 注 釈 部 分 を 含 んでいるとき,ダブルスラッシュ"//"を 除 いた 注 釈 部 分 がスクリプ ト 名 になる. 例 :1 行 目 が t := 0 // 初 期 化 のとき,スクリプト 名 は" 初 期 化 " 3. スクリプトは スクリプトボタン としてメモエリアに 表 示 されます.このとき,ボタン 上 に 表 示 されているのがスクリプト 名 です. 代 入 文 1. パラメータ := 式 式 はGRAPESで 計 算 できるものであること. 式 が 値 を 持 たない 場 合, 代 入 文 は 実 行 されない. 例 : a := b^2+3 2. 基 本 図 形 の 要 素 := 式 式 の 値 が 代 入 される. 例 : P.x := sin t P := (2,3) 3. Inc(パラメータ, 式 ) 4. Dec(パラメータ, 式 ) 式 の 値 だけパラメータ 値 を 増 減 する. 式 を 省 略 した 場 合 1だけ 増 減 する. 例 :Inc(a, Pi/4), Inc(a) 条 件 文 1. If 条 件 文 Then 実 行 文 2. If 条 件 文 Then 実 行 文 Else 実 行 文
3. If 条 件 文 Then Endif 4. If 条 件 文 Then Else Endif 繰 り 返 し 1. While 条 件 文 Wend 条 件 文 が 成 り 立 つ 間,While と Wend の 間 の 実 行 文 を 繰 り 返 し 実 行 する. 2. For パラメータ := 式 1 To 式 2 Step 式 3 Next For~Next は, 次 の 文 と 等 価 である. パラメータ := 式 1 While パラメータ 式 2 実 行 文 Inc(パラメータ, 式 3) Wend 式 3を 省 略 した 場 合 1ずつ 増 加 する. 描 画 命 令 と 計 算 命 令 1. Draw 現 在 のパラメーター 値 に 従 ってグラフを 描 く. 軌 跡 を 残 さないときには,コロンをつけた"Draw:"を 用 いる. 画 面 上 のすべての 表 示 が 更 新 される. 2. OverDraw 現 在 のパラメーター 値 に 従 ってグラフを 描 く. 現 在 の 画 面 の 上 に, 新 しく 計 算 したグラフを 描 き 加 える. 不 要 になったグラフの 削 除 は 行 わないために 描 画 は 速 い.ただし, 速 さの 点 では, 次 の Calc の 方 が 勝 っている. 正 しい 画 面 表 示 にするには,Refresh や Draw を 用 いる. 3. Calc 現 在 のパラメーター 値 に 従 ってグラフを 描 く. 軌 跡 を 残 さないときには,コロンをつけた"Calc:"を 用 いる. 画 面 表 示 の 更 新 は 一 切 されない.(したがって 高 速 ) 画 面 表 示 が 必 要 なときには,Refresh や Draw を 用 いる. 4. Refresh 表 示 を 更 新 する.
Calc 命 令 によって 変 更 された 残 像 や 軌 跡 を 表 示 するのに 用 いる. また メモも 更 新 される. Draw は 計 算 してから 描 画 するが,Refresh は 描 画 の 更 新 をするだけ. 5. RefreshMemo メモだけを 更 新 する 表 示 領 域 の 変 更 1. SetArea(x1,y1,x2,y2) 2 点 (x1,y1),(x2,y2)を 対 角 線 とする 領 域 を, 画 面 全 体 に 表 示 する. 残 像 消 去 と 残 像 化 1. ClrAImg すべての 図 形 の 残 像 を 消 去 2. ClrAImg( 図 形 名 ) 図 形 の 残 像 を 消 去 図 形 名 はカンマで 区 切 って 複 数 記 述 することができます. 例 :ClrAImg(y1,C2,A,L8) 陽 関 数 y1, 陰 関 数 C2, 図 形 A, 線 分 L8 の 残 像 を 消 す. 3. SetAImg そのとき 描 かれているグラフの 残 像 化 4. AImgOff 残 像 を 残 さない. 残 像 Off ボタンを 押 すのと 同 等 5. AImgOn 残 像 Off 状 態 の 解 除 個 々のグラフの 表 示 非 表 示 1. ShowObj( 図 形 名 ) 図 形 を 表 示 する 図 形 名 はカンマで 区 切 って 複 数 記 述 することができます.(HideObj, InvShowObj も 同 様 ) 例 :ShowObj(y1,C2,A,L8) 陽 関 数 y1, 陰 関 数 C2, 図 形 A, 線 分 L8 を 表 示 する. 2. HideObj( 図 形 名 ) 図 形 を 非 表 示 にする 3. InvShowObj( 図 形 名 ) 図 形 の 表 示 を 切 り 替 える. これは,データパネルの 表 示 スイッチ( 図 形 ラベル)をクリックするのと 同 等 です.
個 々のグラフの 色 の 変 更 1. SetColor( 図 形 名, 色 ) 図 形 の 表 示 色 を 変 更 します. 基 本 図 形 や 曲 線 では 点 の 色, 関 数 のグラフではグラフ 色 を, 連 結 図 形 では 線 の 色 を 変 更 する. 図 形 は, 一 度 にはひとつしか 指 定 できません. 色 は,RGB を 表 す 24 ビット 整 数 で 与 える.GRAPES は 16 進 数 を 扱 うことはできないので, rgb 関 数 や,hsl 関 数 を 利 用 して 色 を 指 定 する. 例 : SetColor(y1, rgb(0.8, 0, 1)) この 例 では, 関 数 y1 のグラフが 紫 色 になる. 2. SetLineColor( 図 形 名, 色 ) 図 形 の 表 示 色 を 変 更 する. 基 本 図 形 や 曲 線 では 線 の 色, 関 数 のグラフではグラフ 色 を, 連 結 図 形 では 線 の 色 を 変 更 する. 3. SetInnerColor( 図 形 名, 色 ) 基 本 図 形, 曲 線, 連 結 図 形 のペイント 色 を 変 更 する. 与 えた 関 数 を 波 形 とする 音 を 出 す. 1. Play(パラメータ, 開 始 秒, 終 了 秒, 波 形 関 数 ) 量 子 化 16 ビット,サンプリングレート 22050Hz( 変 更 可 能 ),ステレオの 音 を 出 す. 例 : 振 動 数 440Hz の 正 弦 波 を2 秒 間 鳴 らすのなら, Play( t, 0, 2, sin880pit ) ( 補 足 : 左 記 の"Pit"は π と t の 積 です) 例 : 左 チャンネルから 440Hz, 右 チャンネルから 441Hz の 音 を 出 すのなら, Play( t, 0, 2, (sin880pit, sin882pit)) ( 補 足 :ステレオ 出 力 時 にはベクト ルデータを 与 えます) パラメータは, t 以 外 のパラメータや 変 数 x でも 構 いません. 最 大,480,000 サンプリングレート( 秒 )まで 可 能 です. 演 奏 が 開 始 されるのは,すべてのデータの 計 算 終 了 後 です. 演 算 速 度 の 遅 いマシンで は, 演 奏 開 始 までに 時 間 がかかることがあります. 2. Play 下 記 PlayAfter コマンドで 作 成 した Wave データを 演 奏 する. 最 後 に 演 奏 した Wave データを 再 演 奏 する. 3. PlayAfter(パラメータ, 開 始 秒, 終 了 秒, 波 形 関 数 ) Play コマンドと 異 なり 演 奏 しません PlayAfter コマンドで 作 成 されたWave データは, 作 業 用 メモリー 上 に 配 置 されたまま, 演 奏 されません. 作 業 用 メモリー 上 にWaveデータが 残 っている 状 態 で 次 のPlayAfterコマンドが 実 行 さ れた 場 合,これら Wave データは 結 合 されます. 作 業 用 メモリー 上 に 作 成 された Wave データを 演 奏 するには,Play コマンドを 実 行 し ます. 複 数 の Play() 命 令 を 連 続 して 実 行 した 場 合, 高 性 能 なパソコンでは 演 奏 順 序 が 乱 れ ることがあります.このような 場 合 には,PlayAfter コマンドでひと 繋 がりのデータ を 作 成 してから, 最 後 に Play コマンドで 演 奏 するようにします.
4. PlaySync(パラメータ, 開 始 秒, 終 了 秒, 波 形 関 数 ) Play コマンドと 異 なるのは 次 の1 点 だけです. Play コマンドでの 演 奏 はバックグラウンドで 行 われるのに 対 して,PlaySync コマンド では 演 奏 を 終 えるまで 次 の 命 令 を 実 行 できません. 5. SetSampleRate(サンプリングレート) サンプリングレートを 変 更 する. 例 : 48,000Hz に 設 定 するには SetSampleRate(48000) 6. 音 の 保 存 最 後 に 出 した 音 は,[ファイル]メニューの[ 音 の 保 存 ]で,wave ファイルとして 保 存 することができます. 時 間 待 ち 1. Wait( 式 ) 式 で 指 定 した 時 間 停 止 する. 単 位 はミリ 秒. 2. Settime( 式 ) Wait 式 で 指 定 した 時 間 を,Settime を 実 行 したときにからカウントし 始 め,Wait 実 行 時 に 時 間 が 残 っていれば 指 定 時 間 が 経 過 するまで 停 止 する 3. Pause スクリプトの 実 行 を 停 止 し, 入 力 を 待 つ. Pause(メッセージ) とした 場 合,メッセージ 表 示 する. 自 動 実 行 条 件 1. On 要 素 名 Change この 文 はスクリプトの1 行 目 か 2 行 目 に 書 く. 指 定 した 要 素 が 変 更 されるとスクリプトが 自 動 実 行 される. 指 定 できる 要 素 は,パラメータ, 図 形 (P など),ユーザー 関 数, 陽 関 数. 例 :On a,b,f Change(パラメーターa,b あるいは 関 数 f のいずれかが 変 更 されると 実 行 される) サブスクリプトの 呼 び 出 し 1. Call(サブスクリプト 名 ) 同 じプロジェクト 内 の 別 のスクリプトを 実 行 することができます. 実 行 後 は 次 の 行 に 制 御 が 移 ります.
スクリプトの 実 行 停 止 1. End 実 行 中 のスクリプトを 終 了 します.もし, 他 のスクリプトから Call 命 令 によって 呼 ばれて いるときには, 元 のスクリプトに 制 御 が 戻 ります. スクリプトの 読 み 込 み 記 録 してあるファイルからスクリプトを 読 み 込 むことができます. メモの 読 込 を 行 うと,スクリプトを 読 み 込 むことができます. このとき, 関 数 やパラメータなどメモやスクリプト 以 外 のデータは 変 更 されません.