2013-02-14 88 views
9

假設我在fabricjs畫布中有一個圖像。我可以根據圖像的top & left值及其大小輕鬆計算角點的座標。在fabricjs中查找旋轉物體角點的座標

如何在圖像旋轉到任何程度時這樣做?

實施例:

enter image description here

編輯:優選地在不使用三角學的,如果在fabricjs本身或其它地方實現的簡單的方法。

+0

計算起點,然後用一個矩陣來計算,他們是基於旋轉> http://en.wikipedia.org/ wiki/Rotation_(數學) – BenM 2013-02-14 12:17:03

+0

謝謝 - 請參閱我的編輯。 – seldary 2013-02-14 12:20:57

+0

你將不得不使用trigonomics。沒有內置的方法。 – BenM 2013-02-14 12:29:29

回答

17

是的,當然。

我們存儲在這些座標對象的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: ... }。我們已經在getBoundingRectWidthgetBoundingRectHeight之前(現已棄用),但getBoundingRect肯定更有用;它也允許讀取左/頂值。

您可以在http://fabricjs.com/bounding-rectangle/看到它在行動(嘗試旋轉對象)

+2

謝謝 - 我使用完美的oCoords。不需要Math.sin!它允許我「附加」自定義的手柄只有一個對象的兩個角落,而不是9個默認的... – seldary 2013-02-16 20:55:10

+2

鏈接不可用 – 2017-03-10 12:39:58

+0

鏈接是http://fabricjs.com/bounding-rectangle(沒有一個後斜線) – kikap 2017-11-14 05:11:35