Подтвердить что ты не робот

Найти координаты углов вращающегося объекта в fabricjs

Предположим, что у меня есть изображение в холсте fabricjs. Я могу легко вычислить координаты углов на основе значений изображения top и left и его размера.

Как это сделать, когда изображение поворачивается в любой степени?

Пример:

enter image description here

EDIT: желательно без использования тригонометрии, если есть более простой метод, реализованный в самой fabricjs или где-то еще.

4b9b3361

Ответ 1

Да, конечно.

Мы храним эти координаты в объекте oCoords

oCoords.tl.x, oCoords.tl.y // top left corner 
oCoords.tr.x, oCoords.tr.y // top right corner
oCoords.bl.x, oCoords.bl.y // bottom left corner
oCoords.br.x, oCoords.br.y // bottom right corner

Это то, что устанавливается при вызове метода setCoords.

Но вы, вероятно, не хотите связываться с ними.

Начиная с версии ~ 1.0.4, у нас есть метод getBoundingRect для всех объектов, который возвращает { left: ..., top: ..., width: ..., height: ... }. У нас уже были getBoundingRectWidth и getBoundingRectHeight раньше (сейчас не рекомендуется), но getBoundingRect, безусловно, более полезен; он также позволяет читать левые/верхние значения.

Вы можете увидеть это в действии на http://fabricjs.com/bounding-rectangle (попробуйте вращать объекты)

Больше:
http://fabricjs.com/docs/fabric.Group.html#oCoords
http://fabricjs.com/docs/fabric.Group.html#calcCoords