Home > flash > 【FLASH】幾何学模様を書いてみる

【FLASH】幾何学模様を書いてみる

  • 2008年11月 5日 16:39
  • flash



circle_draw01.jpg
CIRCLE_DRAW


作ってみました。
数字をいじるといろんな幾何学模様が書けます。

仕組み的には、circle×circleです。
意外とはまってしまう。。。

構造はシンプルです。curveToで作るとまた違う世界があるかもなぁ。
AS3.0は勉強中。まだ美しいコードが書けません。
必要なものはステージに置いてくださいね。


import flash.geom.*;
import flash.events.*;
import flash.display.*;
//initial
var radiusArr:Array = new Array();
var speedArr:Array = new Array();
var targetArr:Array = new Array();
var ballArr:Array = new Array(ball01,ball02);
var lineGraphics = new Shape();
var moveFlag:Boolean = false;

startBtn.addEventListener(MouseEvent.CLICK,onClickHdl);

function onClickHdl(event:MouseEvent){
if(!moveFlag){
radiusArr = [Number(txRadius01.text),Number(txRadius02.text)];
speedArr = [Number(txSpeed01.text),Number(txSpeed02.text)];
targetArr = [cMc,ball01];
lineGraphics.graphics.clear();
lineGraphics.graphics.lineStyle(1,0x111111);

moveFlag = true;

init();
}else{
stage.removeEventListener(Event.ENTER_FRAME,onEnterFrameHdl);
moveFlag = false;
}
}

function init(){
//obj init
for(var i:int = 0;i var ball:MovieClip = ballArr[i];
ball.degree = 0;
ball.radius = radiusArr[i];
ball.speed = speedArr[i];
ball.targetmc = targetArr[i];
ball.rad = 0;
setPos(ball)
}

//start
lineGraphics.graphics.moveTo(ball02.x,ball02.y);
this.addChild(lineGraphics);
stage.addEventListener(Event.ENTER_FRAME,onEnterFrameHdl);
}

function onEnterFrameHdl(event:Event):void{
for(var i:int = 0;i var ball = ballArr[i];
ball.degree += ball.speed;
setPos(ballArr[i]);
}

lineGraphics.graphics.lineTo(ball02.x,ball02.y);
}

function setPos(mc:MovieClip):void{
mc.rad = mc.degree * Math.PI/180;
mc.x = mc.targetmc.x + Math.cos(mc.rad) * mc.radius;
mc.y = mc.targetmc.y + Math.sin(mc.rad) * mc.radius;
}


circle_draw02.jpg

circle_draw03.jpg

circle_draw04.jpg

Trackbacks:0

TrackBack URL for this entry
http://tag.4digit.jp/blog_admin/mt-tb.cgi/33
Listed below are links to weblogs that reference
【FLASH】幾何学模様を書いてみる from taglog

Home > flash > 【FLASH】幾何学模様を書いてみる

Search
Feeds

Return to page top