Forked from: ffffine's フィボナッチ数列 diff:2 forked from: フィボナッチ数列 hasandurmaz4.. forked:10favorite:16lines:138license : MIT License modified : 2012-03-29 20:25:08 Embed Tweet // forked from ffffine's フィボナッチ数列 // forked from ffffine's flash on 2010-8-23 package { import flash.display.Bitmap; import flash.display.BitmapData; import flash.display.Shape; import flash.display.Sprite; import flash.events.Event; import flash.geom.ColorTransform; import flash.utils.getTimer; import flash.events.MouseEvent; [SWF(width = "480", height = "800", color = "0x000000" , frameRate = "30")]; public class FlashTest extends Sprite { private var _num:Number = 100; private var _rad:Number = 100; private var _balls:Array = []; private var _addRot:Number = 0; private var _vector:int = 1; private var _canvas:Bitmap; private var _bmpData:BitmapData; private var _colorTransform:ColorTransform; public function FlashTest() { _bmpData = new BitmapData(465, 465, false,0x000000); _canvas = new Bitmap(_bmpData,"auto",true); _colorTransform = new ColorTransform(0.99,0.959,0.99); addChild(_canvas); for (var i:int = 0; i < _num; i++) { var sh:Shape = new Shape(); var theta:Number = (i * Math.PI * 2.0 * ((1 + Math.sqrt(5)) / 2)) * Math.PI / 180; var h:Number = i * 360 / _num * 2; var s:Number = 30; var v:Number = 99; sh.graphics.beginFill(HSVtoRGB(h,s,v)); sh.graphics.drawCircle(0, 0, 10); sh.graphics.endFill(); sh.x = (_rad + i*2) * Math.sin(theta) + stage.stageWidth / 2; sh.y = (_rad + i*2) * Math.cos(theta) + stage.stageHeight / 2; sh.blendMode = "add"; addChild(sh); _balls.push(sh); } stage.addEventListener(Event.ENTER_FRAME, xEnterFrame); stage.addEventListener(MouseEvent.CLICK, stageClick); } private function xEnterFrame(e:Event):void { for (var i:int = 0; i < _num; i++) { var theta:Number = (i * Math.PI * 2.0 * ((1 + Math.sqrt(5)) / 2) + _addRot) * Math.PI / 180 * _vector ; var myRad:Number = _rad * Math.cos(getTimer() / 2000) + 110 ; _balls[i].scaleX = _balls[i].scaleY = 1 * Math.sin(getTimer() / 2000) ; _balls[i].x = (myRad + i*2) * Math.sin(theta) + stage.stageWidth / 2; _balls[i].y = (myRad + i*2) * Math.cos(theta) + stage.stageHeight / 2; } _bmpData.draw(stage); _bmpData.colorTransform(_bmpData.rect, _colorTransform); _addRot++; } private function stageClick(e:MouseEvent):void{ _vector = _vector*-1; } private function HSVtoRGB(h:Number, s:Number, v:Number):uint { var tmpR:uint = 0; var tmpG:uint = 0; var tmpB:uint = 0; h = (h % 360.0 + 360.0) % 360.0; s = Math.min( Math.max(s, 0.0) , 1.0); v = Math.min( Math.max(v, 0.0) , 1.0); if(s == 0.0) { tmpR = v; tmpG = v; tmpB = v; } else { var hi:uint = (h / 60) % 6; var f:Number = h / 60 - hi; var p:Number = v * (1.0 - s); var q:Number = v * (1.0 - f * s); var t:Number = v * (1.0 - (1.0 - f) * s); switch(hi) { case 0: { tmpR = v * 255; tmpG = t * 255; tmpB = p * 255; break; } case 1: { tmpR = q * 255; tmpG = v * 255; tmpB = p * 255; break; } case 2: { tmpR = p * 255; tmpG = v * 255; tmpB = t * 255; break; } case 3: { tmpR = p * 255; tmpG = q * 255; tmpB = v * 255; break; } case 4: { tmpR = t * 255; tmpG = p * 255; tmpB = v * 255; break; } case 5: { tmpR = v * 255; tmpG = p * 255; tmpB = q * 255; break; } default: { tmpR = 0; tmpG = 0; tmpB = 0; break; } } } return tmpR << 16 | tmpG << 8 | tmpB; } } } Code Fullscreen Preview Fullscreen andrewexex88.. nariyu Alex.Moder Dan0 umhr savage69kr tjoen Flashist peoplecanfly.. Albert BeloitAve merrycat korooooon : アルゴリズム taomengyu : painting hidrodixtion.. : artawesomegenerative jeaby0000 : 彩虹特效 art awesome generative painting アルゴリズム ColorTransform Math.sqrt blendMode stage Math.cos scaleY addEventListener scaleX Math.min Math.PI Math.max Math.sin MouseEvent.CLICK MouseEvent.ENTER_FRAME addChild MouseEvent push Array Sprite uint sort new page view favorite forked pv143 forked from: forked from: フィボナ.. Alex.Moder forked:0 favorite:0lines:79 (diff:61) pv214 forked from: forked from: フィボナ.. yangbomb2 forked:0 favorite:1lines:138 (diff:1) pv502 forked from: forked from: フィボナ.. Richard.Watson forked:1 favorite:2lines:138 (diff:1) tag: BitmapData エフェクト 数学 色変化 pv149 forked from: forked from: フィボナ.. MMMMMonchi forked:0 favorite:0lines:138 (diff:1) pv0 forked from: forked from: フィボナ.. Wataru019 forked:0 favorite:0lines:138 (diff:1) pv0 forked from: forked from: フィボナ.. Darklord77 forked:0 favorite:0lines:138 (diff:1) pv160 forked from: forked from: フィボナ.. .Sha.Mikz. forked:0 favorite:0lines:138 (diff:1) pv195 forked from: forked from: フィボナ.. jenellelovesyou forked:0 favorite:0lines:138 (diff:1) 1 2NEXT