или просто включите функции сохранения и восстановления в canvas
ctx.save();
ctx.translate(85,85);
ctx.rotate(5 * Math.PI / 180);
ctx.fillRect(10,10,10,10);
ctx.restore();
Если вы хотите вращаться вокруг оси нарисованных объектов, вы должны были бы перевести объекты на x и y. Тогда при создании объекта его местоположение x будет отрицательной половиной его ширины, а y будет отрицательной половиной его высоты.
Пример:
Square = {
x:10,
y:10,
width:10,
height:10,
angle:5
}
ctx.save();
ctx.translate(Square.x,Square.y);
ctx.rotate(Square.angle * Math.PI / 180);
ctx.fillRect(-Square.width/2,-Square.height/2,Square.width,Square.height);
ctx.restore();
Надеюсь, это кому-нибудь поможет:)