鉴于此网格(http://i.stack.imgur.com/Nz39I.jpg是梯形/梯形,而不是正方形),您如何找到用户点击的点?即当用户单击网格中的某个点时,它应返回A1或D5等坐标。
我正在尝试为此编写伪代码而且我被卡住了。谁能帮我?谢谢!
编辑:我仍然被卡住了......有没有人知道找到网格高度的方法?
答案 0 :(得分:0)
如果是真正的透视投影,您可以通过反投影运行点击点,以在3D世界中找到它的X,Z坐标。该网格具有规则的间距,您可以使用简单的数学来获得A1,D5等。
如果它只是你绘制的东西,那么你必须将Y坐标与水平线的位置进行比较以找出哪一行。然后你需要检查它相对于有角度的线的位置(左/右)以获得列 - 为此,你需要终点的坐标或线的方程。
另一种选择是存储相同的图像,其中每个“方形”充满不同的颜色。然后,检查用户单击的像素的颜色,但在此备用图像中。这种方法假定它是一个固定的图像,并且灵活性最低。
答案 1 :(得分:0)
如果你有网格线的终点坐标,那么
尝试对每个网格线使用内外测试并找到位置
答案 2 :(得分:0)
由于该网格只是2D网格平面的3D视图,因此存在投影变换,其将网格上的坐标变换为2D平面上的坐标。要找到这个变换,在平面上标记4个不同的点(比如边缘)就足够了,在2D平面上为它们分配坐标并求解得到的线性方程组。