dice3d : サイコロ

dice3d

サイコロです。クリックすると振れます。
http://dame.dyndns.org/misc/dice3d/

要するに剛体衝突シミュレーションです。みんなご存知金子さんが公開している箱シミュレーションを床と立方体一つに特化して最適化した感じのアルゴリズムです。つまり劣化版。


swf 的な見所としては、正方形を歪める方法でした。ActionScript からいじれるのは基本的にムービークリップ *1 だけなのですが、ムービークリップを拡大・縮小・回転をするメソッドはあるけど平行四辺形的に歪める (skew) メソッドがありません。そこで、ムービークリックを二段重ねて、それぞれ拡大縮小・回転させることで skew を実現しています。以下の ppt 参照。
http://dame.dyndns.org/misc/dice3d/skew-movieclip.ppt

ただ、この方法を考えた直後に知ったのですが、実は当時から割と有名な方法でした (誰でも思いつくって?) 。この辺が詳しいです。あと、ming には skew をするメソッドが用意されているようです。PHP binding だけかもしれないけど。

*1:図形、画像、他のムービークリップなどを子に持てるクラスのようなもの。