2011-09-18 35 views
1

鉴于此网格(http://i.stack.imgur.com/Nz39I.jpg是梯形/梯形,而不是正方形),您如何找到用户点击的点?即当用户点击网格中的一个点时,它应该返回像A1或D5那样的坐标。查找网格中单击的点

我想写这个伪代码,我卡住了。谁能帮我?谢谢!

编辑:我仍然坚持......有没有人知道任何方式来找到网格的高度?

+0

你是否有网格中每条线的终点坐标? –

+0

没有。这是我拥有的所有信息。没有坐标,只是测量。我觉得信息很少。有没有办法找到第一个和最后一个网格高度的梯形高度(如图片35px和120px所示)? –

回答

0

如果它是一个真实的透视投影,您可以在反向投影中运行该点击点以找到它在3D世界中的X,Z坐标。该网格有规律的间距,你可以使用简单的数学来获得A1,D5等。

如果它只是你画的东西,那么你必须比较Y坐标和水平线的位置来找出哪一行。然后,您需要检查它相对于成角度线的位置(左/右)以获得列 - 为此,您需要端点的坐标或线的方程。

另一种选择是存储相同的图像,其中每个“方形”用不同的颜色填充。然后检查用户点击的像素的颜色,但在此替代图像中。这种方法假定它是一个固定的图像,并且是最不灵活的。

+0

这不是一个3D网格。这只是绘制的东西(2D)。这更适用于2D HTML5游戏类型。我觉得信息很少。有没有办法找到第一个和最后一个网格高度的梯形高度(如图片35px和120px所示)? –

+0

我会选择第三个选项,制作另一个图像副本,并在替代图像中为每个方块涂上不同的颜色。向人们显示原始内容,并使用替代项来确定哪个广场被点击。 – phkahler

0

如果你有那么网格线的终点坐标

尝试使用内外线测试每个网格线,并找到位置

+0

我没有坐标。我只有网格的测量。 –

0

由于该网格只是一个2D网格平面的3D视图,有一个投影变换将网格上的坐标转换为2D平面上的坐标。为了找到这个变换,在平面上标记4个不同的点(比如说边)就足够了,在2D平面上给它们指定坐标并且解出最终的线性方程组。