夏の風物詩といえば花火ですが、それを Java3D でシミュレーションしようと思う。 できれば玉にどのように火薬を詰めるか、 どの方向に爆発させるかなどについえもシミュレーションできるようにしたい。
よく言われる打ち上げ花火(正確には「打ち上げ玉」)の中にも、 割物、ポカ物、昇り曲、仕掛け花火などがあり、 代表的な割物の中にも、菊、牡丹、冠、千輪、などがある。 詳しくは参考文献を見てほしい。
色は金属の炎色反応で決まる。 紅色は炭酸ストロンチウム、緑色は硝酸バリウム、 黄色はシュウ酸ソーダ、青色は酸化銅、 白色はアルミニウムなどを使うらしい。
花火を飛ばすための「割薬」と、光を出すための「星」を 「玉皮」の中に詰めることによって、玉ができる。 Java3D によるシミュレーションではこの玉を BranchGroup とし、 そのなかにいろいろな星を Shape3D として addChild することにする。
適当なキーを押すと開始し、スペースキーを押すと止まります。 マウスによって、視点を動かせるので、花火が上がっている中を小型セスナで アクロバット飛行をする気分が味わえます。