如何解决用画布获取变换后的坐标
| 如果我在画布上使用像translate
/ѭ1like这样的转换函数,则所有点在传递给任何画布函数时都会被转换。这就像一个咒语,但是还有一种方法可以简单地获取转换点而无需实际绘制吗?
这在调试时将非常有用。我现在所能做的就是寻找该点的终点,但是我似乎无法获得计算出的转换坐标。
因此,假设我旋转了90度,是否有任何函数可以获取一个点(即ѭ2and)并将转换后的点返回(即(0,10)
)?
我的意思基本上是这样的:
ctx.rotate(90 * Math.PI / 180);
ctx.transformed(10,0); // would return (0,10) as an array or something
解决方法
简短的答案是“默认情况下不是”。
您将需要自己跟踪当前的转换,因为无法获取它(人们提交了错误,因为这似乎是不必要的)。
诸如Cake.js之类的库以及我们中的许多人实质上都在复制转换代码,以便对其进行跟踪,因此我们可以执行此类操作。跟踪之后,您所需要做的就是:
function multiplyPoint(point) {
return {
x: point.x * this._m0 + point.y * this._m2 + this._m4,y: point.x * this._m1 + point.y * this._m3 + this._m5
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。