Правильный способ поворота вещей с помощью мыши в Fabric.js

Это пример:
http://jsbin.com/UHENoKi/11/

Здесь я использую простую формулу, чтобы найти угол между двумя точками (векторами):
enter image description here

Но как вы могли видеть в JSBin - что-то сломалось. Где я совершил ошибку?

UPDATE

Рабочий пример:
http://jsbin.com/UHENoKi/13/edit?js,output

Ответ 1

Угол поворота на него рассчитывается на основе нуля 0,0, но квадрат вращается вокруг его собственного центра на 100, 100, поэтому они не совпадают. Если вы переместили квадрат на 0,0, он чувствует себя хорошо:

var rect = new fabric.Rect({
  fill: '#00FFAB', 
  top: 0, 
  left: 0, 
  width: 100, 
  height: 100, 
  selectable: false
});

Вместо перевода в холст-координаты в toLocal переведите в координатное пространство квадрата.