WEB/システム/IT技術ブログ

Papervision3Dで惑星の公転

Papervision3Dをお勉強するにあたって、どうせなら目標を設定しようかと。
それなりにPapervision3Dのサンプルを見てまわり、こういう表現に向いているだろうな、完成度が良く、拡張性もあったほうがいいな、といろいろと悩んだ結果、「宇宙」を表現しようかと思います。

今回はその一歩である、惑星の運動です。つまりは球体を自転させながら公転させます。
円運動を実装するとき、どうしてもサイン、コサインとか出てきて、数学アレルギーの人にとっては敬遠しがちですが、一度覚えてしまえば、関数化して置いておけばよいでしょう。





ActionScriptのコードは以下のとおりです。import部分は省いてあります。

public class Main extends BasicView{
	private var sphere:Sphere;
	private var t:Number = 1;
	public function Main(){
		var material:WireframeMaterial = new WireframeMaterial(0x0000FF);
		sphere = new Sphere(material, 100, 10, 10);
		scene.addChild(sphere);
		startRendering();
		addEventListener(Event.ENTER_FRAME, mvSphere);
	}

	private function mvSphere(e:Event):void {
		t += 1;
		// 自転運動
		sphere.rotationY = t * 5;
		// 公転運動
		sphere.x = 500 * Math.sin(t / 100);
		sphere.z = 500 * Math.cos(t / 100);
	}
}

変数tを基準にしていますが、自転運動は5のところで自転スピードを調整します。公転運動のところでは、500が中心からの距離、100が公転のスピードを調整します。

B!

Comment

コメントはありません

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

Monthly Archives