Home > ActionScript 3.0 > FlashPlayer10における消失点調整/PerspectiveProjection.projectionCenter[as3]

FlashPlayer10における消失点調整/PerspectiveProjection.projectionCenter[as3]

FlashPlayer10になって、displayobjectに3dが扱えるようになりました。これによってzやrotationX/Y/Zなどの3d関連プロパティが追加されました。

さて、3dといえば、消失点です。wikipediaを見ると、以下のように解説されています。

多くの透視図には消失点 (vanishing point) が存在する。一点透視図法とは水平線上に1つの消失点を持つものであり、視界に存在するすべての平行な直線は、距離に比例してこの消失点へと近づいていき、やがて消える。まっすぐ地平線の彼方へと消える2本の線路を想像すればわかりやすいだろう。

as3的にかみ砕いて言えば、消失点を調整すればdisplayObjectのzを高めたときに、その点のx,y座標に向かって遠ざかっていき、最終的に消えます。

PerspectiveProjection.projectionCenter

as3でこの消失点にアクセスするには、ルートのDisplayObjectContainerのperspectiveProjectionプロパティ->projectionCenterを参照します。このプロパティ自体はdisplayObjectから継承されている物ですが、ルート以外のインスタンスには参照できないことに気をつけてください。このプロパティはPointに型指定されており、x/y座標をもっています。 デフォルト値は、250,250になります。 以下は、PerspectiveProjection.projectionCenterとZの関係を示すSWFとソースです。 perspectiveProjection for ActionScript 3.0

//初期設定
var maxZ:int = 8000;//最大Z

/*MovieClipの生成と調整*/
var ex:MovieClip = new MovieClip();
ex.graphics.beginFill(0x555555);
ex.graphics.drawCircle(0,0,500);
addChild(ex);//表示
ex.x = ex.stage.stageWidth/2;//中央に配置
ex.y = ex.stage.stageHeight/2;
ex.z = maxZ;//zを最大値に

/*perspectiveProjectionを参照*/
var perspectiveProjection:PerspectiveProjection = ex.root.transform.perspectiveProjection;

/*デバッグ用TextFieldの生成と調整*/
var textField:TextField = new TextField();
textField.textColor = 0xFF0000
textField.autoSize = TextFieldAutoSize.LEFT;
addChild(textField)

addEventListener(Event.ENTER_FRAME,enterFrameHandler);


function enterFrameHandler(e:Event):void{
	/*マウス位置座標とステージの%参照*/
	var mouseXPositionPercent = (this.stage.mouseX/this.stage.stageWidth);
	var mouseYPositionPercent = (this.stage.mouseY/this.stage.stageHeight);
	/*perspectiveProjection.projectionCenterを再設定*/
	perspectiveProjection.projectionCenter = new Point(this.stage.stageWidth*mouseXPositionPercent,this.stage.stageHeight*mouseXPositionPercent)
	/*アニメーション*/
	ex.z = (maxZ*mouseYPositionPercent);
	ex.rotationX = ex.rotationY += -10
	
	/*デバッグ*/
	textField.text = String("projectionCenter : "+perspectiveProjection.projectionCenter+"\n"+"x : "+ex.x+"\n"+"y : "+ex.y+"\n"+"z : "+ex.z)
}

Summer Camp 2010 野中文雄のActionScript 3.0による 三次元表現

無料  ActionScript 3.0による 三次元表現 in アップルストア 銀座

フィジカルコンピューティング ラボラトリー

Comments:0

Comment Form

コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。

Trackbacks:0

TrackBack URL for this entry
http://xingxx.com/mt/mt-tb.cgi/23
Listed below are links to weblogs that reference
FlashPlayer10における消失点調整/PerspectiveProjection.projectionCenter[as3] from xingxx

Home > ActionScript 3.0 > FlashPlayer10における消失点調整/PerspectiveProjection.projectionCenter[as3]

Search
Feeds
Tag Cloud

Return to page top