【发布时间】:2010-06-30 04:09:49
【问题描述】:
我在 HTML5 Canvas 上绘制了一些图像,我想检查它们是否被鼠标点击。看起来很简单,我有图像的界限,但是图像被转换(翻译和缩放)。不幸的是,上下文没有获取当前变换矩阵的方法,而且也没有用于矩阵乘法的 API。 似乎唯一的解决方案是自己跟踪变换并实现矩阵乘法。 欢迎提出建议。
【问题讨论】:
-
经过更多的思考,我意识到即使上下文有一个方法来获取当前的变换矩阵,它也没有用,因为我需要鼠标点击时的图像变换矩阵,到那个时候上下文有不同的变换。我可能需要的是一个场景图,要么实现一个简单的,要么使用像 Cake JS 这样的库。
-
您不需要矩阵来翻译和缩放。例如,要平移和缩放鼠标 X 坐标,请使用 newPointX = event.x * scaleX + translateX
-
谢谢,你是对的,在这种情况下我不必实现矩阵乘法。
-
有人开始为 Canvas 编写场景图:gskinner.com/blog/archives/2010/12/…