Rose Animation
今更だけど。前に作った"バラ曲線"を使ってモーショングラフィックス作ったよ。
ネタに困ったら使い古した技術を使おうって誰かが言ってたから・・・
/**
* Copyright 178ep3 ( http://wonderfl.net/user/178ep3 )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/g1Ri
*/
// 今更だけど。前に作った"バラ曲線"を使ってモーショングラフィックス作ったよ。
// ネタに困ったら使い古した技術を使おうって誰かが言ってたから・・・
package
{
import flash.display.Sprite;
import flash.events.Event;
[SWF(width=465, height=465, frameRate=30, backgroundColor=0x000000)]
public class RoseAni extends Sprite
{
private var _rose:Rose;
private var _n:Number=1;
private var _d:uint=1;
public function RoseAni()
{
_rose = addChild(new Rose(200))as Rose;
_rose.x = stage.stageWidth/2;
_rose.y = stage.stageHeight/2;
addEventListener(Event.ENTER_FRAME,loop);
}
private function loop(e:Event):void
{
_rose.upD(_n,_d);
_n += 0.01;
if(_n>=8)
{
_n = 1;
_d++;
if(_d>=8)_d=1;
}
}
}
}
import flash.display.Shape;
class Rose extends Shape
{
private var _rad:Number;
public function Rose(radius:Number)
{
_rad = radius;
}
public function upD(n:Number,d:uint):void
{
var c:Number = n/d;
this.graphics.clear();
this.graphics.beginFill(0xff0000,0.4);
this.graphics.moveTo(0,0);
for(var i:uint=0; i<360*d; i++)
{
var rad:Number = i * Math.PI /180;
var v:Number = Math.sin(c * rad);
var r:Number = _rad * v;
var x:Number = r * Math.cos(rad);
var y:Number = r * Math.sin(rad);
this.graphics.lineTo(x,y);
}
this.graphics.endFill();
}
}