Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /// <reference path="defs/easeljs.d.ts" />
- module djankey {
- export class CustomShape extends createjs.Shape {
- public minx:number = 0;
- public maxx:number = 0;
- public miny:number = 0;
- public maxy:number = 0;
- constructor(color:string)
- {
- super();
- this.graphics.beginFill(color);
- var j:number = Math.floor(16 * Math.random());
- var r:number = 10;
- var minRP:number = .5;
- var minR:number = r * minRP;
- var num:number = 3+j/2;
- var num2:number = 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<createjs.Point> = [];
- for (var i:number = 0; i <= num2;i++ ) {
- var ca:number = i * a;
- var cr:number = (i % 2) == 0?r:minR;
- var dx:number = cr * Math.cos(ca);
- var dy:number = cr * Math.sin(ca);
- if(dx<this.minx) this.minx = dx;
- else if(dx>this.maxx) this.maxx = dx;
- if(dy<this.miny) this.miny = dy;
- else if(dy>this.maxy) this.maxy = dy;
- if (i == 0) {
- if(!isB) this.graphics.moveTo(dx, dy);
- }else {
- if (!isB) this.graphics.lineTo(dx, dy);
- else vs.push(new createjs.Point(dx,dy));
- }
- }
- if(isB){
- vs = vs.concat(vs);
- for (i = 0; i <= num2;i++ ) {
- var p0:createjs.Point = vs[i];
- var p1:createjs.Point = vs[i + 1];
- var p01:createjs.Point = new createjs.Point((p0.x + p1.x) / 2, (p0.y + p1.y) / 2);
- if(p01.x<this.minx) this.minx = p01.x;
- else if(p01.x>this.maxx) this.maxx = p01.x;
- if(p01.y<this.miny) this.miny = p01.y;
- else if(p01.y>this.maxy)this. maxy = p01.y;
- if (i==0) {
- this.graphics.moveTo(p01.x, p01.y);
- }else {
- if(p0.x<this.minx) this.minx = p0.x;
- else if(p0.x>this.maxx) this.maxx = p0.x;
- if(p0.y<this.miny) this.miny = p0.y;
- else if(p0.y>this.maxy) this.maxy = p0.y;
- this.graphics.curveTo(p0.x, p0.y, p01.x, p01.y);
- }
- }
- }
- this.cache(this.minx, this.miny, this.maxx-this.minx, this.maxy-this.miny);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement