processing - 处理中的绝对鼠标位置

标签 processing mouse-coordinates

这是我在处理论坛(到目前为止我还没有得到答案)上发表的帖子的复制粘贴,我想我不妨在这里试试。

处理是一种非常酷的绘制东西的方式,特别是对于网页。仅供引用 http://processing.org

嘿,我是处理新手,我正在用它来制作一个无闪存网站,所以我几乎是在 Canvas 上画画。

我的鼠标位置有问题,虽然坐标,在绘制时,将左上角视为位置 0,0;实际的鼠标坐标将 0,0 视为浏览器窗口的左上角。

所以我的问题是, Canvas 在一个居中的网页上运行,每当浏览器改变大小时, Canvas 内鼠标的坐标也会改变。

有没有办法让鼠标相对于 Canvas 的坐标?这样我就可以更改浏览器窗口的大小,并且鼠标坐标的左上角始终为 0,0?

所以这就是问题所在,我不知道有多少人在 stackoverflow 中遇到过这个问题,但我希望有人能帮助我:)

提前感谢堆栈溢出社区。

最佳答案

我对处理不熟悉,但是你不能只计算浏览器窗口左上角和 Canvas 左上角的差异吗?
即(使用jquery)

$(window).onresize = function() {
 //offset return position realive to the document.
 var offset = $('#canvas').offset();
 window.canvasLeft = offset.left;
 window.canvasTop = offset.top;
}

然后你可以做这样的事情:
 relativeMouseLeftPosition = mouseLeftPosition() - window.canvasLeft;

您应该将 #canvas 替换为 Canvas 区域的 css 选择器。

还要注意 window 是全局对象,我在这里使用它来处理可能的范围问题。

关于processing - 处理中的绝对鼠标位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/454271/

相关文章:

vb.net - 窗体外的鼠标坐标

javascript - 在 Firefox 41 中获取鼠标坐标

java - android : AssetManager and list() not working 处理

java - 处理 PrintWriter 无法正常工作

api - 在处理中使用Youtube Data API v3

c++ - int main() 持续运行

java - 在单击位置绘制新圆圈,同时保存以前的圆圈

java - 如何使用 AccessibilityService 在 Android 上执行拖动(基于 X、Y 鼠标坐标)?