34 lines
931 B
JavaScript
34 lines
931 B
JavaScript
function rotatePoint(x, y, theta) {
|
|
var thetaRad = theta * (Math.PI / 180);
|
|
var rotX = Math.cos(thetaRad) * x - Math.sin(thetaRad) * y;
|
|
var rotY = Math.sin(thetaRad) * x + Math.cos(thetaRad) * y;
|
|
|
|
return {
|
|
x: rotX,
|
|
y: rotY,
|
|
};
|
|
}
|
|
|
|
function randInt(min, max) {
|
|
return Math.floor((Math.random() * max) + min);
|
|
}
|
|
|
|
//http://stackoverflow.com/questions/15397036/drawing-dashed-lines-on-html5-canvas
|
|
CanvasRenderingContext2D.prototype.dashedLine = function (x1, y1, x2, y2, dashLen) {
|
|
if (dashLen == undefined) dashLen = 2;
|
|
this.moveTo(x1, y1);
|
|
|
|
var dX = x2 - x1;
|
|
var dY = y2 - y1;
|
|
var dashes = Math.floor(Math.sqrt(dX * dX + dY * dY) / dashLen);
|
|
var dashX = dX / dashes;
|
|
var dashY = dY / dashes;
|
|
|
|
var q = 0;
|
|
while (q++ < dashes) {
|
|
x1 += dashX;
|
|
y1 += dashY;
|
|
this[q % 2 == 0 ? 'moveTo' : 'lineTo'](x1, y1);
|
|
}
|
|
this[q % 2 == 0 ? 'moveTo' : 'lineTo'](x2, y2);
|
|
};
|