【发布时间】:2018-06-28 05:50:54
【问题描述】:
我一直在使用was presented here 的定制 PannableCanvas,但遇到了一些麻烦。我的软件快完成了,我需要做的最后一件事是添加对在屏幕中心生成节点的支持。所以我最初的做法是:
nodeTranslateX/Y = -pannableCanvas.getTranslateX/Y
直到我意识到如果你放大/缩小(比例不再 = 1.0),它会完全搞砸它并且节点开始被放置在奇怪的位置。于是我尝试了:
nodeTranslateX/Y = -pannableCanvas.getTranslateX/Y * pannableCanvas.getScale()
那也没用!它被扔得更乱了。
我尝试了多种转换组合,例如划分比例、反转比例、使用 screenToLocal() 等等。他们都没有工作。问题是,当您缩小时,画布的 translateX/Y 会根据比例进行调整,但是当节点应该以 300 之类的合理坐标生成时,它会为您提供 1500 之类的东西。
有没有办法获取屏幕左上角相对于画布的坐标?我完全不知道如何解决这个问题。同样,我只需要能够在屏幕中心生成节点。我该怎么办?
感谢您的宝贵时间!
【问题讨论】: