Правилният начин за завъртане на нещата с мишка в Fabric.js

Това е примерът:
http://jsbin.com/UHENoKi/11/

Тук използвам проста формула, за да намеря ъгъла между две точки (вектори):
въведете описание на изображението тук

Но както можете да видите в JSBin - нещо е счупено. Къде сгреших?

АКТУАЛИЗИРАНЕ

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


person Gill Bates    schedule 09.11.2013    source източник
comment
Мисля, че начинът, по който изчислявате, е добър за определени квадранти. Мисля, че трябва да промените стойности (това е само пример, не е реално) като + Qx * 90, където Q0 = 0, Q1 = 90 и т.н.   -  person Itay Moav -Malimovka    schedule 10.11.2013


Отговори (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, превеждайте в координатното пространство на квадрата.

person Douglas    schedule 09.11.2013