Я не могу получить доступ к демонстрационной ссылке, которую вы указали, но она должна быть универсальной.
Вам необходимо переместить ваш объект к основанию вашего координатного пространства o:(0,0)
, выполнить вращение, а затем переместить ваш объектобратно туда, где он был до того, как вы его переместили, и поскольку все ваши преобразования объединены в единую матрицу преобразований, порядок преобразований очень важен, и вам, в основном, просто нужно сделать их обратно, то есть переместить объект обратно в исходное положение, затем поверните его, а затем переместите его в базу координатного пространства:
ctx.translate(objects_x_position, objects_y_position);
ctx.rotate(angle);
ctx.translate(-objects_x_position, -objects_y_position);
И вуаля.Вот демо: http://jsfiddle.net/ArtBIT/CdbWx/1