用画布获取变换后的坐标

| 如果我在画布上使用像
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
  }
}
    

要回复问题请先登录注册