var Canvas = function (el, parameter) {
this.canvas = document.getElementById(el);
this.width = canvas.width;
this.height = canvas.height;
this.pen = canvas.getContext('2d');
parameter = parameter || {};
if (Object.prototype.toString.call(parameter) !== '[object Object]') {
throw new Error('Parameter must be a Object.')
} else {
var fillStyle = parameter.fillStyle || 'yellow';
var strokeStyle = parameter.strokeStyle || 'black';
var lineWidth = parameter.lineWidth || 1;
}
this.pen.fillStyle = fillStyle;
this.pen.strokeStyle = strokeStyle;
this.pen.lineWidth = lineWidth;
};
Canvas.prototype.clearRect = function (x, y, width, height) {
if (!x) {
this.pen.clearRect(0, 0, this.width, this.height);
} else {
this.pen.clearRect(x, y, width, height);
}
};
Canvas.prototype.set = function (parameter) {
if (parameter.fillStyle) {
this.pen.fillStyle = parameter.fillStyle;
}
if (parameter.strokeStyle) {
this.pen.strokeStyle = parameter.strokeStyle;
}
if (parameter.lineWidth) {
this.pen.lineWidth = parameter.lineWidth
}
};
Canvas.prototype.drawStar = function (parameter) {
parameter = parameter || {};
if (Object.prototype.toString.call(parameter) !== '[object Object]') {
throw new Error('Parameter must be a Object.')
} else {
var stroke = parameter.stroke === undefined ? true : parameter.stroke;
var fill = parameter.fill === undefined ? true : parameter.fill;
var angleCount = parameter.angleCount || 5;
var radius = parameter.radius || this.width < this.height ? this.width / 2 : this.height / 2;
var x = parameter.x || this.width / 2;
var y = parameter.y || this.height / 2;
}
var angle = Math.PI / angleCount;
this.pen.translate(x, y);
this.pen.beginPath();
this.pen.moveTo(0, -radius);
for (var i = 0; i < angleCount * 2; i++) {
this.pen.rotate(angle);
if (i % 2 === 0) {
this.pen.lineTo(0, -radius / 2);
} else {
this.pen.lineTo(0, -radius);
}
}
this.pen.closePath();
if (fill) {
this.pen.fill()
}
if (stroke) {
this.pen.stroke();
}
this.pen.translate(-this.x, -this.y);
};