ドーンとなった花火? WebGL [JavaScript・ソフト・ゲームなど]
久しぶりにプログラムのお話です。
外は雨ですが、そろそろ花火シーズンですね。
というわけではないのですが、花火をプログラムするとどうなのかなと思いまして、作ってみました。
球の方程式は、x*x+y*y+z*z=r*rですね。
このままではプログラム出来ませんので、媒介変数表示というものに変換するらしいです。
x=r*cosθ*cosϕ
y=r*cosθ*sinϕ
z=r*rsinθ
ただし(0≦θ≦π 0≦ϕ<2π)
そしてrを時間で拡大するとともに、落下させます。
落下は重力加速度:g = 9.8[m/s2]として、h=ー1/2*g*t*tでしょうか?
プログラム上では重力加速度は厳密にする必要はなくて、
時間の二乗で距離を増やせばそれなりに見えます。
2Dでは面白くありませんので?3Dで表示してみましょう。
5(星の大きさ)
星が広がっていくところだけで、
かなり前のブラウン運動のプログラムの焼き直しでした。
あとは花火の玉が上に上昇するところを付けくわえて、軌跡を残す(時間=距離を逆に辿って暗くすると簡単、かんたん?)ようにするとOKでしょうね。
ところで、WebGLって、iPhoneでも再生できるのですね。
うーん携帯(スマホ)恐るべしです。
(環境によっては再生できないこともあると思いますので・・・すみません)
外は雨ですが、そろそろ花火シーズンですね。
というわけではないのですが、花火をプログラムするとどうなのかなと思いまして、作ってみました。
球の方程式は、x*x+y*y+z*z=r*rですね。
このままではプログラム出来ませんので、媒介変数表示というものに変換するらしいです。
x=r*cosθ*cosϕ
y=r*cosθ*sinϕ
z=r*rsinθ
ただし(0≦θ≦π 0≦ϕ<2π)
そしてrを時間で拡大するとともに、落下させます。
落下は重力加速度:g = 9.8[m/s2]として、h=ー1/2*g*t*tでしょうか?
プログラム上では重力加速度は厳密にする必要はなくて、
時間の二乗で距離を増やせばそれなりに見えます。
2Dでは面白くありませんので?3Dで表示してみましょう。
5(星の大きさ)
星が広がっていくところだけで、
かなり前のブラウン運動のプログラムの焼き直しでした。
あとは花火の玉が上に上昇するところを付けくわえて、軌跡を残す(時間=距離を逆に辿って暗くすると簡単、かんたん?)ようにするとOKでしょうね。
ところで、WebGLって、iPhoneでも再生できるのですね。
うーん携帯(スマホ)恐るべしです。
(環境によっては再生できないこともあると思いますので・・・すみません)