REALbasic かってに連載します(第9回)


 「Mac OS のメニューからファイル検索で“名前が”メニューをクリックする時に Option を押すことで“目に”項目が現れる」これを使うと不可視ファイルを検索することが出来ます。
 第9回 -ドップラー効果 -

 今回は嗜好を変えて、動く波源から出る波の波面をリアルタイムで表現してみます。正確な議論の手助けになるように、条件のはっきりした波面の絵を描き、これを他のアプリケーションにコピー&ペースト出来るようにしてみます。


  - 説明 -
 
  1.  NewPictureで定義した「p」に図形を描きます。このようにしておくと後で簡単に、コピーやプリントアウト出来るので、コピーやプリントアウトが必要な場合には、CanvasやWindowに直接描かずに、Pictureに描くようにしましょう。

  2.  画面の再描画のメソッド、Refresh などは、イベントが終わると実行されるようです。イベントの中のループなどで、繰り返しの画面操作が必要な場合は、操作の種類に応じた解決策を考える必要がありそうです。ここでは、Refresh の代わりに、Graphics.ClearRectを使いました。Graphics.FillRect でもかまいません。また、塗りつぶしの色は、「RGB( , , )」で指定すると確定してしまいますが、メインウィンドウのBackColorと一致させるようにしておくと、後からの変更が簡単です。

  3.  出来上がった画面をコピーして、クラリスに張り込んで使うつもりでしたので、背景色は白色にしています。Clipboardにコピーされた画面の背景色を透明にする方法は、REALbasicではまだサポートされていません。

     クラリスに張り付けた画面に関しては、白色の背景色を、透明にする方法があります。これは正式な仕様ではないようですが、左右反転の操作をすると白色の背景色が透明色になります。

  4.  石ころを水面に勢いよく投げる「水切り」での波面の様子(動く波源から出る波の波面の様子)をリアルタイムで表現する画面は、メニューから別に呼び出すようにしました。

  5.  リアルタイムで変化する波面を表現するためには画面の再描画が必要です。これには、一定時間ごとにイベントを実行させる「Timer」コントロールを使います。

  6.  Module1 には、波源の位置を表す配列 x(50) と y(50) 。波面の半径を表す配列 r(50) を定義しています。picture は配列を50も作ると、メモリーサイズを増やす必要がありますので、1枚のpicture に書いては消し、また書いては消しという繰り返しの作業を行いました。

     
     今回の「ドップラー効果1.2」の ソースプログラムです。

     
      プロジェクトファイルのみです。REALbasic最新バージョンが必要です。30 kバイト   

      ソースコードについての質問やご意見がありましたら以下のアドレスまでご連絡下さい。
              koko-@mx2.tiki.ne.jp

このホームページのホストはです。 無料ホームページをどうぞ!