• 検索結果がありません。

関数  Moviedata(str1,str2,options) 機能  アニメーションデータを作る

説明  str1 はアニメーションを定義する関数名を文字列とする。str2 は定義域。

 optionsは,Cut とDiv

 Cut : 1秒のフレーム数。初期値は20。  Div : 全体のフレーム数。初期値は80。

 したがって,初期値では4秒間のアニメーションとなる。

【例】定円上を動く点Pと,定点Aを結ぶ線分の中点をQとして動きを見る。

まず,定円を,原点中心、半径2として描いておく。

アニメーションを定義する関数は,時間を t とすれば,時刻 t における図(動くもの だけ)を定義する。時刻は単なる媒介変数であるので,t でなく s などでもよい。

 Mf(t):=(

  pt=2*[cos(t),sin(t)];

  Listplot("2",[[4,0],pt]);

  Pointdata("2",mid(pt,[4,0]));

  Letter([[4,0],"s","A",pt,"en","P",mid(pt,[4,0]),"ne","Q"]);

 );

ここで,Mf(t) の中で使っているユーザー定義関数mid() は,端点を引数として線分

の中点を返すもので,

  mid(p1,p2):=(p1+p2)/2;

として定義しておく。

また,点の大きさを適宜設定しておく。

以上の準備の後,

  Moviedata("Mf(t)","t=[0,2*pi]");

を実行する。

ここでは,角度を媒介変数としているので,時間のt でなくs として   Moviedata("Mf(s)","s=[0,2*pi]");

としてもよい。

次のようにオプションを指定すると,5秒間のアニメーションとなる。

  Moviedata("Mf(s)","s=[0,2*pi]",["Div=50","Cut=10"]);

["Div=150","Cut=30"]とすると,やはり5秒間のアニメーションとなるが,1秒間 のフレーム数が多いためなめらかな動きとなる。ビデオのフレームレートである。た

だし,ファイルサイズは約3倍となる。

Cinderellaの画面は次のようになる。

    

TexMvボタン または TexParaボタンを押すと画面上でもアニメーションが実行され

る。その後 Exekc ボタンを押すとファイルが作成される。

この図では,点が明示されるのは Q だけである。A,Pとも点を明示する場合のスクリ プトの全体を示しておく。

 Fhead="mid";

 Texparent="";

 Ketinit();

 Ketinitmv();

 mid(p1,p2):=(p1+p2)/2;

 Circledata("1",[[0,0],[2,0]]);

 Ptsize(4);

 Pointdata("1",[4,0]);

 Mf(t):=(

  pt=2*[cos(t),sin(t)];

  Listplot("2",[[4,0],pt]);

  Pointdata("2",pt);

  Pointdata("3",mid(pt,[4,0]));

  Letter([[4,0],"s","A",pt,"en","P",mid(pt,[4,0]),"ne","Q"]);

 );

 Moviedata("Mf(s)","s=[0,2*pi]",["Div=30","Cut=10"]);

 Mvdispg();

関数一覧

関数  Setpara(str)

機能  parapa のタイトルを指定する

説明  パラパラ動画のタイトルを str にする。デフォルトは Fhead。  ”” にした場合はタイトルを表示しない。

6 KETCindy3D

6.1 概要

KETCindy3Dの画面は次のように構成される。

Cinderellaの描画面に,白の矩形で囲んだ領域が2つできる。NE,SWを対角とする左側

の領域を主画面,右側の領域を副画面という。

      

主画面は平面の場合と同様,TeXに出力される範囲を示し,NE,SWの2点をドラッグす ることにより変更できる。

副画面は,Start3d()関数により作成される。座標軸は,Xyzax3data() 関数によって描く ことができる。主画面の下方のスライダで視点が移動でき,主画面上では軸が回転する。副 画面は,xy平面上に視点を置いたものと考えればよい。

主画面上にCinderellaの作図ツールで点や線分を作図すると,Start3d() 関数により副画 面に対応する点が作図される。主画面上の点をドラッグするとx,y座標を変更でき,副画面 上の点をドラッグするとz座標を変更できる。空間内の点は,Putpoint3d()関数によって座 標を指定して作成することもできる。次のような図はCinderellaの作図ツールだけでも作る ことができるし,Putpoint3d()関数を用いても作ることができる。

  

主画面と副画面の対応する点をドラッグすることにより,インタラクティブに図形を描く ことができるが、実際には描画関数を用いて図形を描き,スライダで視点を変えて見やすい 図をTeXに出力することになるだろう。

KeTCindy3Dでは,点・直線・曲線・面の描画を描画関数を用いて行うことができる。線

や面については陰線処理を行い,立体的な図を作成することができる。しかし,陰線処理は 処理にかなりの時間がかかるので,CindyscriptではなくScilabで行っているが,それでも 相当時間がかかることを覚悟しなければならない。Scilabでの計算は,バッチファイル/シェ ルファイルで行っているが,Cindyscript ではその計算結果が出るのを待つため一時的に反 応がなくなる。したがって,反応がなくなってもハングアップではないので,Cinderellaを 強制終了しないように。

一例を示すと,球面をメッシュ入りで座標軸とともに陰線処理して描いた場合,次のよう な図が画面に表示されるまでの時間は,MacBookPro13’ (Late 2013) Core i7 2.8GHz 8GB  (OSX 10.11.6) の場合で約124秒であった。スクリプトは Wireparadata() の例を参 照されたい。

       x

y z