[ActionScript 3.0] graphics.lineToと三角関数でサインカーブを描画 [AS3]

GraphicsやBitMap系のクラス、数学的な処理(三角関数とか)、PaperVison3D、tweener 、動画/音声+ インタラクションという組み合わせで面白いものを出来ないか、思案中です。
アイデアがいつかたちになるのかは不明ですが。。。。

今回はgraphics.lineToとMath.sin()を使ってサインカーブを書く、、、ってだけです。ちょっとした練習です。

eraseボタンで書いたものが消せます。
filterボタンでblurfilterのOn/Offを切り替えられます。

メインタイムライン用。
ボタンを3つ用意する必要有りです。

var xSpeed:Number;
var ySpeed:Number;
var xPos:Number;
var yPos:Number;
var amp:Number;
var angle:Number = 0;
var filterOn:Boolean = false;

var bmd:BitmapData
var bm:Bitmap
var bf:BlurFilter;

function drawSin(){
	graphics.lineStyle(1,0xFFFFFF*Math.random());
	graphics.moveTo(0, 200);
	xPos = Math.random() * -50 -10;
	xSpeed = Math.random() * 15+2;
	ySpeed = Math.random() * 0.2;
	amp = Math.random()*230 +40
	addEventListener(Event.ENTER_FRAME, loop);
}

function bmdMake():void{
	bmd = new BitmapData(550, 550, true, 0x000000);
	bm = new Bitmap(bmd);
	addChild(bm);
	bf = new BlurFilter(5, 5, 3);
}

function loop(e:Event):void{
	xPos += xSpeed ;
	angle += ySpeed;
	yPos = 200 + Math.sin(angle) *amp;
	graphics.lineTo(xPos,yPos)
	if(filterOn){
		bmd.draw(this);
		bmd.scroll(0, 3);
		bmd.applyFilter(bmd, bmd.rect, new Point(0,0), bf);
	}
	if(xPos >= 450){
		drawSin();
		}
}

btn3.addEventListener(MouseEvent.CLICK,startFunction)

function startFunction(e:Event):void{
	drawSin();
	bmdMake();
	btn3.removeEventListener(MouseEvent.CLICK,startFunction)
	btn3.visible = false;
	btn1.addEventListener(MouseEvent.CLICK,clickHandle)
	btn.addEventListener(MouseEvent.CLICK,eraser)
}

function clickHandle(e:MouseEvent):void{
	if(filterOn) filterOn = false
	else filterOn = true

}

function eraser(e:MouseEvent):void{
	graphics.clear();
	removeChild(bm)
	bmdMake();
	}

Leave a Comment

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