【发布时间】:2016-02-25 23:43:55
【问题描述】:
我在 opengl 中创建了一个棋盘/棋盘,它有 100 个盒子。从逻辑上讲,我以二维数组(10 x 10)表示该板。现在我希望用户单击opengl窗口中的任意位置,我可以确定该框属于数组中的哪个索引,以便我可以进行一些处理。我怎样才能做到这一点?
我正在使用 LWJGL 一个用于 opengl 的 java 包装器。我知道我必须获取鼠标坐标,并且我知道它们以标准化设备坐标返回(在 1 到 -1 的范围内) 如何将 NDC 映射到索引?我一直在寻找,但没有找到太多。
我知道每个盒子的 NDC 范围。那是因为我通过给出顶点来绘制它们,所以我知道每个框在 NDC 中的开始和结束位置。但是以键值对的形式输入范围及其各自的索引就太麻烦了。
目前我正在尝试通过基本算术创建一个公式,以便它转换 NDC 并为我提供索引。这可能吗?还是有其他可行的方法?
对于那些正在思考我是如何制作棋盘的人,我以 0.2 的常规距离绘制了从 -1 到 1 的垂直线。水平的情况也是如此。
【问题讨论】: