drawstar
...
@author lizhi http://matrix3d.github.io/
♥0 |
Line 52 |
Modified 2013-07-22 21:40:54 |
MIT License
archived:2017-03-20 15:33:32
ActionScript3 source code
/**
* Copyright lizhi ( http://wonderfl.net/user/lizhi )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/xZ26
*/
package
{
import flash.display.Sprite;
import flash.geom.Point;
/**
* ...
* @author lizhi http://matrix3d.github.io/
*/
public class DrawStar extends Sprite
{
public function DrawStar()
{
graphics.lineStyle(0);
var n:int = 6;
for (var j:int = 0; j < n*n;j++ ) {
var r:Number = 20;
var minRP:Number = .5;
var minR:Number = r * minRP;
var x:int = (j%n)*r*3+r*2;
var y:int = int(j/n)*r*3+r*2;
var num:int = 3+j/2;
var num2:int = num * 2;
var a:Number = Math.PI / num;
var a2:Number = a * 2;
var sa:Number = 0;
var isB:Boolean = j % 2 == 1;
var vs:Array = [];
for (var i:int = 0; i <= num2;i++ ) {
var ca:Number = i * a;
var cr:Number = (i % 2) == 0?r:minR;
var dx:Number = x + cr * Math.cos(ca)
var dy:Number = y + cr * Math.sin(ca);
if (i == 0) {
if(!isB)graphics.moveTo(dx, dy);
}else {
if (!isB) graphics.lineTo(dx, dy);
else vs.push(new Point(dx,dy));
}
}
if(isB){
vs = vs.concat(vs);
for (i = 0; i <= num2;i++ ) {
var p0:Point = vs[i];
var p1:Point = vs[i + 1];
var p01:Point = new Point((p0.x + p1.x) / 2, (p0.y + p1.y) / 2);
if (i==0) {
graphics.moveTo(p01.x, p01.y);
}else {
graphics.curveTo(p0.x, p0.y, p01.x, p01.y);
}
}
}
}
}
}
}