FIVe3D 3D空間に描画

またFIVe3D
2.1になってGraphics3Dクラスもパワーアップです。
lineSpaceTo

Graphics3Dクラスに”moveToSpace”, “lineToSpace”, “curveToSpace” という3つのメソッドが追加。
AS3のデフォルトで用意されてるGraphicsクラスのlineTo,curveTo,moveToに3つ目のパラメータz(奥行き)が追加されてます。

moveToSpace(100,100,100)
lineTpSpace(200,200,200)

使い方は簡単で、上のコードだと
x,y,z = (100,100,100)から(200,200,200)に直線が引かれます。

奥行きに従って線の細さが変化したりはしないので、
回転させたりしないと実感できません。
zの値に応じてenterFrameでlineStyleの線の太さを変えたりすれば、奥行きだせるのかも。
サンプル

ソースコード一部

private function  experiment(){
			scene= new Scene3D();
			container.mainStage.addChild(scene)
			scene.x = 916 / 2;
			scene.y = 492 /2 ;

			sp3D= new Sprite3D();
			sp3D.graphics3D.lineStyle(8,0xFFFF00,0.6)
			sp3D.graphics3D.moveToSpace(mouseX,mouseY,0)
			scene.addChild(sp3D);

			sp3D.addEventListener(Event.ENTER_FRAME,enterFrameHandler)
			stage.addEventListener(MouseEvent.CLICK,clickHandler)
		}

private function clickHandler(e:MouseEvent):void{
			sp3D.graphics3D.lineStyle(8,0xFFFFFF*Math.random(),0.6)
}

private function enterFrameHandler(e:Event){
			var z:Number
			z = Math.sin(getTimer()/1000)
			sp3D.graphics3D.lineToSpace(stage.mouseX-456-container.x,
										stage.mouseY-246-container.y,
										z*400)
			sp3D.rotationX +=0.5
}

Leave a Comment

Please note: Comment moderation is enabled and may delay your comment. There is no need to resubmit your comment.