三角関数」タグアーカイブ

speakedraw(5) – キャンバスの初期化など


進行方向が変わるタイミングで3つのオブジェクトの表示順が変わりまた100回のうちに表示内容が消去されるようになります。ランダムの機能を使用しているのでいつそうなるのかは神のみぞ知るって感じです。。。また方向転換するたびに奏でる音も変わります。どんな音が出るかもまた神のみぞ知るって感じです。。。
関数resetCountで表示状態の初期化とどのオブジェクトが前に来るとかと言う表示順を設定して、関数playSoundでどんな音を出力するのかを設定しています。

という感じでこのプログラムの解説を終わりにしようと思います。
最後に説明しきれなかった部分等も含めた全体を記載しておきます。
次回はこれを応用したものを作ってみようかと思ってます、はい。
動作するプログラムはこちらです。
続きを読む

Speakedraw(4) – 追跡せよ(私の足跡?)


関数move内で進行方向が変わったときにオブジェクトの軌跡を辿る線を描きます。と言っても始点に想定される壁の位置から終点と想定される反対側の壁の位置を結ぶ線です。壁に当たる以外にもオブジェクト同士が接触した時にも描くのでちょっと面白く描かれる時もあります。(オブジェクト接触時は想定外の振る舞いもありますがこれも偶然の産物ということで。)

まずは関数setFromToです。
進行方向と逆に向かって壁に接触するところを始点として設定して
進行方向に向かって壁に接触するところを終点とします。

続いて実際に始点と終点を算出する関数getCanvasEdgeです。
現時点のXY座標と角度から壁に接触する座標を取得します。

動作するプログラムはこちらです。
ちょっと図解もしておきます。
続きを読む

Speakedraw (02) – 移動距離と他オブジェクトとの衝突


前回のCircleクラスの関数moveから呼び出される関数を説明していきます。

一番最初に出てくるdrawLineは本来であれば角度が変更したときに呼び出されるものなのでそちらの方でまとめて解説する予定です。
まずは初回起動時以外で最初に呼ばれる「setStep」について説明をしていきます。
ここではパラメータで指定された移動距離からxy座標それぞれの移動距離を計算します。

  1. 縦はsinθ * パラメータで設定された移動距離数
  2. 横はcosθ * パラメータで設定された移動距離数

となります。

続きを読む