/////////////////////////////////////////////////////////////////////// // RegularPolygon /////////////////////////////////////////////////////////////////////// /** * RegularPolygon constructor.  Examples include triangles, squares, pentagons, hexagons, etc. * @constructor * @augments Kinetic.Shape * @param {Object} config */ Kinetic.RegularPolygon = function(config) { this.setDefaultAttrs({ radius: 0, sides: 0 }); this.shapeType = "RegularPolygon"; config.drawFunc = function() { var context = this.getContext(); context.beginPath(); context.moveTo(0, 0 - this.attrs.radius); for(var n = 1; n < this.attrs.sides; n++) { var x = this.attrs.radius * Math.sin(n * 2 * Math.PI / this.attrs.sides); var y = -1 * this.attrs.radius * Math.cos(n * 2 * Math.PI / this.attrs.sides); context.lineTo(x, y); } context.closePath(); this.applyStyles(); }; // call super constructor Kinetic.Shape.apply(this, [config]); }; /* * RegularPolygon methods */ Kinetic.RegularPolygon.prototype = { /** * set radius * @param {Number} radius */ setRadius: function(radius) { this.attrs.radius = radius; }, /** * get radius */ getRadius: function() { return this.attrs.radius; }, /** * set number of sides * @param {int} sides */ setSides: function(sides) { this.attrs.sides = sides; }, /** * get number of sides */ getSides: function() { return this.attrs.sides; } }; // extend Shape Kinetic.GlobalObject.extend(Kinetic.RegularPolygon, Kinetic.Shape);