Math.random
関数が0以上1未満の乱数を返すことから自明です.
参考:
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Math/random
this.vオブジェクトは、動く図形のはやさを指定しているのですが、random()*10だと図形の動く方向が右下にしか進みません。なぜなのでしょうか。
Math.random
が返す値に10
を掛けた値は常に正(0以上)となるわけですから, 全ての図形は正方向の速度をもっていることになります. つまりx座標として右向きの速度を, y座標として下向きの速度をもっているのですから, 図形は右下に動きます.
一方Math.random()*10-5
とすればこの値は-5以上5未満となりますから, 図形は任意の方向に動きうることになります.
しかし、そのように指定すると確かにそうなりますが、肝心の図形がブラウザ左部に偏ってしまい動く図形のいくつかは、ブラウザに隠れた感じになってしまいます。なぜ、そうなってしまうのでしょうか。
-5
の有無には全く関係しません. そもそも図形の初期位置が左に偏っているからです.
JavaScript
1for(var i=0; i<NUM;i++) {
2 //※positionXは、~dom() *120が正しいのか、それとも*20が正しいのか・・・?(76頁)
3 //↑正しいも何も初期位置を0〜120の範囲とするか0〜20の範囲とするかの違いに過ぎない
4 positionX = Math.random() * 20;//X座標を0-20の間でランダムに
5 positionY = Math.random() * 20;//X座標を0-20の間でランダムに
6 particle = new Particle(ctx,positionX,positionY);
7 particles.push(particle);
8}
9