微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

用画布获取变换后的坐标

如何解决用画布获取变换后的坐标

| 如果我在画布上使用像
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 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?