用画布获取变换后的坐标

问题描述

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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...