我如何将位置捕捉到矩形网格?
How would I snap a position to a rectangular grid?
我正在尝试制作一个正在处理的 midi 编辑器,我需要有矩形单元格,您可以单击这些单元格以在其中添加注释。
到目前为止,我已经进行了谷歌搜索,但还没有找到结果。发生的情况是,当您单击得越远,它就越不准确。
我不知道出了什么问题,我过去也遇到过这个问题,但无法解决。
注意:单元格不是正方形的。
将鼠标坐标捕捉到最近的网格单元格中心的示例处理代码(其中单元格尺寸由矩形宽度和高度定义)。
int w = 48; // rectangle width
int h = 24; // rectangle height
int snapX = round(mouseX / w) * w + w/2; // '+ w/2' is offset to center of cell
int snapY = round(mouseY / h) * h + h/2; // '+ h/2' is offset to center of cell
我正在尝试制作一个正在处理的 midi 编辑器,我需要有矩形单元格,您可以单击这些单元格以在其中添加注释。
到目前为止,我已经进行了谷歌搜索,但还没有找到结果。发生的情况是,当您单击得越远,它就越不准确。
我不知道出了什么问题,我过去也遇到过这个问题,但无法解决。
注意:单元格不是正方形的。
将鼠标坐标捕捉到最近的网格单元格中心的示例处理代码(其中单元格尺寸由矩形宽度和高度定义)。
int w = 48; // rectangle width
int h = 24; // rectangle height
int snapX = round(mouseX / w) * w + w/2; // '+ w/2' is offset to center of cell
int snapY = round(mouseY / h) * h + h/2; // '+ h/2' is offset to center of cell