如何检索 HTML5 Canvas 中的当前转换?

发布于 2024-09-27 18:30:58 字数 194 浏览 2 评论 0原文

我有一长串画布 .scale().translate().save()。我的代码中的restore()命令。

有什么方法可以检索当前转换的一些表示,而不是自己记录所有内容,以便我可以找出屏幕坐标映射到转换坐标的位置。

这可能吗?

I've got a long sequence of canvas .scale(), .translate(), .save(), and .restore() commands in my code.

Is there any way to retrieve some representation of the current transformation, short of logging everything myself, such that I can find out where a screen coordinate maps to a transformed coordinate.

Is this possible?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

梦行七里 2024-10-04 18:30:58

现在 Canvas 不会保存当前的变换矩阵(以您可以检索的方式)。你必须自己跟踪它。 :(

很多库都这样做,我确信唯一这样做的库是 cake js

以下是 cake.js 作者为 mozilla core (Firefox) 提交 bug 时的一些讨论:

https://bugzilla.mozilla.org/show_bug.cgi?id=408804

Right now Canvas does not save the current transformation matrix (in a way you can retrieve). You have to keep track of it yourself. :(

Lots of libraries do this, offhand the only one I'm certain that does it is cake js

Here's a bit of talk about it when the cake.js author filed a bug for mozilla core (Firefox):

https://bugzilla.mozilla.org/show_bug.cgi?id=408804

青瓷清茶倾城歌 2024-10-04 18:30:58

如果我没记错的话,Chrome Canary 最近添加了对 .currentTransform 属性的支持,该属性告诉您当前的转换矩阵。 IIRC 它返回一个 SVGMatrix 对象,该对象具有 a、b、c、d、e 和 f 属性。

If I'm not mistaken Chrome Canary has recently added support for the .currentTransform property which tells you the current transformation matrix. IIRC it returns an SVGMatrix object which has a, b, c, d, e and f properties.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文