Circle002
円運動を描画する
* ステージをクリックすると始点が変更される
/**
* Copyright galapagos ( http://wonderfl.net/user/galapagos )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/zf8O
*/
/**
* 円運動を描画する
* ステージをクリックすると始点が変更される
*/
package {
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
import frocessing.FC;
import frocessing.core.F5Graphics;
import frocessing.math.FMath;
[SWF(frameRate="60", backgroundColor="#000000")]
public class Circle002 extends Sprite {
private var fg:F5Graphics;
private var centerX:Number = stage.stageWidth / 2;
private var centerY:Number = stage.stageHeight / 2
private var degree:Number = 0;
private var radius:Number = 100;
public function Circle002():void {
fg = new F5Graphics(graphics);
fg.colorMode(FC.HSB, 100);
fg.noStroke();
stage.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown);
addEventListener(Event.ENTER_FRAME, draw);
}
private function draw(e:Event):void {
if (degree >= 360) {
degree = 0;
}
var radians:Number = FMath.radians(degree);
var x:Number = centerX + (radius * Math.cos(radians));
var y:Number = centerY + (radius * Math.sin(radians));
var hue:Number = FMath.map(mouseX, 0, stage.stageWidth, 0, 100);
var saturation:Number = FMath.map(mouseY, 0, stage.stageHeight, 0, 100);
fg.fill(hue, saturation, 99);
fg.ellipse(x, y, 5, 5);
degree++
}
private function onMouseDown(e:MouseEvent):void {
var x:Number = mouseX - centerX;
var y:Number = mouseY - centerY;
var radians:Number = Math.atan2(y, x);
radius = Math.sqrt(x * x + y * y);
degree = FMath.degrees(radians);
}
}
}