【问题标题】:Find the coordinates of the corners of a rotated object in fabricjs在FabricJS中找到旋转物体的角落的坐标
【发布时间】:2013-01-30 05:50:26
【问题描述】:

假设我在 fabricjs 画布中有一张图片。我可以根据图像的topleft 值及其大小轻松计算出角的坐标。

当图像旋转任意角度时,我该怎么做?

例子:

编辑:最好不使用三角函数,如果在 fabricjs 本身或其他地方实现了更简单的方法。

【问题讨论】:

标签: javascript canvas fabricjs


【解决方案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: ... }。我们之前已经有getBoundingRectWidthgetBoundingRectHeight(现已弃用),但getBoundingRect 肯定更有用;它也允许读取左/上值。

您可以在http://fabricjs.com/bounding-rectangle 看到它的实际效果(尝试旋转对象)

更多:
http://fabricjs.com/docs/fabric.Group.html#oCoords
http://fabricjs.com/docs/fabric.Group.html#calcCoords

【讨论】:

  • 谢谢 - 我使用了完美的 oCoords。不需要 Math.sin!它允许我将自定义手柄“附加”到对象的两个角上,而不是 9 个默认的...
  • 链接不可用
  • 链接是fabricjs.com/bounding-rectangle(没有尾部斜杠)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-21
  • 2023-04-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多