前回作ったプラネタリウムソフトの続きなのだけど、画面表示部分をPapervision3D化してみた。天文計算は前と同じで、画面表示だけをPV3Dに任せる作戦で。大きめの天球儀を3Dで作って、天球儀の内側にカメラを置けば、現実の星空を観測するのと似た感じで表示できるというもくろみなのだ。Starsは単にランダムな点を打つだけなのでこのままでは使えない。やりたいことは似ているので、PV3DのStars.asを参考にしつつ、天球儀を内側から見た図、というVertices3D派生クラスを作ってみた。Vertices3D派生クラスを自分で作って、3D→2D計算はPV3Dにやらせて、2Dの描画は自分やることにする。render(scene:SceneObject3D)で、キーがVertex3Dで値がVertex2Dのマップなprojectedを見ながらBitmapDataでもGraphicsでも好きなところに描画すればよい。Vertex3Dのextraには利用者が何でもぶら下げておけるみたいなので、今回はここに恒星データをぶら下げておくことにする。スプライトの重ね合わせは、ルートクラスにBitmapとSpriteを重ねて貼り付けて、Bitmapに星を、Spriteに星名ラベルと方位ラベルを表示することにした。インタラクションはマウスだけ。マウスを画面中央から上下にポイントすると仰角を上下する。0度〜90度の範囲マウスを画面中央から左右にポイントすると方位角を左右に振る。360度ぐるっと回る。クリックすると視野の移動を一時停止/解除するホイールでズームイン/ズームアウトする観測地点は東京タワー付近にしてみた。観測時刻は1秒ごとに現在時刻で再計算する。夏らしく、夏の大三角形と蠍座が見える。その脇に輝く小さな星までも(見えません)。地平線より下にある星も見えるこれは見えなくするか、うすく見えるようにするか、どうにかしたい。機能は前と違わないのだけど、表示系が3Dになっただけでずいぶんリッチになった。現実の星空をぐるっと見回すような感じで、けっこう良いのではないかと思った。今回は星の位置計算を自前の回転行列でやったけど、これもPV3Dに任せればもっと高速にできるんじゃないかと思う。(PV3D)ソースも公開した。AS3をはじめてみました。75日目(スタンプつくるよ...ページビュー838466リンク集flashショウケース。