Advertisement
Guest User

CustomShape.ts

a guest
Jan 2nd, 2015
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /// <reference path="defs/easeljs.d.ts" />
  2.  
  3. module djankey {
  4.     export class CustomShape extends createjs.Shape {
  5.         public minx:number = 0;
  6.         public maxx:number = 0;
  7.         public miny:number = 0;
  8.         public maxy:number = 0;
  9.  
  10.         constructor(color:string)
  11.         {
  12.             super();
  13.  
  14.             this.graphics.beginFill(color);
  15.             var j:number = Math.floor(16 * Math.random());
  16.             var r:number = 10;
  17.             var minRP:number = .5;
  18.             var minR:number = r * minRP;
  19.             var num:number = 3+j/2;
  20.             var num2:number = num * 2;
  21.             var a:number = Math.PI / num;
  22.             var a2:number = a * 2;
  23.             var sa:number = 0;
  24.             var isB:Boolean = j % 2 == 1;
  25.             var vs:Array<createjs.Point> = [];
  26.  
  27.  
  28.             for (var i:number = 0; i <= num2;i++ ) {
  29.                 var ca:number = i * a;
  30.                 var cr:number = (i % 2) == 0?r:minR;
  31.                 var dx:number = cr * Math.cos(ca);
  32.                 var dy:number = cr * Math.sin(ca);
  33.  
  34.                 if(dx<this.minx) this.minx = dx;
  35.                 else if(dx>this.maxx) this.maxx = dx;
  36.                 if(dy<this.miny) this.miny = dy;
  37.                 else if(dy>this.maxy) this.maxy = dy;
  38.  
  39.                 if (i == 0) {
  40.                     if(!isB) this.graphics.moveTo(dx, dy);
  41.                 }else {
  42.                     if (!isB) this.graphics.lineTo(dx, dy);
  43.                     else vs.push(new createjs.Point(dx,dy));
  44.                 }
  45.             }
  46.  
  47.             if(isB){
  48.                 vs = vs.concat(vs);
  49.                 for (i = 0; i <= num2;i++ ) {
  50.                     var p0:createjs.Point = vs[i];
  51.                     var p1:createjs.Point = vs[i + 1];
  52.                     var p01:createjs.Point = new createjs.Point((p0.x + p1.x) / 2, (p0.y + p1.y) / 2);
  53.  
  54.                     if(p01.x<this.minx) this.minx = p01.x;
  55.                     else if(p01.x>this.maxx) this.maxx = p01.x;
  56.                     if(p01.y<this.miny) this.miny = p01.y;
  57.                     else if(p01.y>this.maxy)this. maxy = p01.y;
  58.  
  59.                     if (i==0) {
  60.                         this.graphics.moveTo(p01.x, p01.y);
  61.                     }else {
  62.                         if(p0.x<this.minx) this.minx = p0.x;
  63.                         else if(p0.x>this.maxx) this.maxx = p0.x;
  64.                         if(p0.y<this.miny) this.miny = p0.y;
  65.                         else if(p0.y>this.maxy) this.maxy = p0.y;
  66.  
  67.                         this.graphics.curveTo(p0.x, p0.y, p01.x, p01.y);
  68.                     }
  69.                 }
  70.             }
  71.  
  72.             this.cache(this.minx, this.miny, this.maxx-this.minx, this.maxy-this.miny);
  73.         }
  74.  
  75.  
  76.     }
  77. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement