跟踪网格中的点

时间:2013-04-10 22:35:46

标签: python python-2.7 grid point

假设我们有一个m倍的矩形房间。表面覆盖有1 * 1个瓷砖,这意味着我们有m * n个方形瓷砖。每次给出一个随机点。程序应该显示放置该点的特定图块。模拟平铺曲面的最简单方法是什么?

首先我写了这个:

room_coordinates = []
for m in range(m):
    for n in range(n):
        room_coordinates.append((m,n))

仅给出表面上所有有序的自然数对。每个图块由四个这样的点组成,所以我想也许我可以使用像{1: [(0,0), (1,0), (0,1), (1,1)]}这样的字典来表示一个图块,但话又说回来,我不确定如何确定一个点(0.5,0.5)实际上是在第1层内。

1 个答案:

答案 0 :(得分:3)

我会用最左下角的坐标来表示每个图块,这样你就可以通过它的底层函数知道一个点在哪里。即

x= math.floor(x)

在点(0.5,0.5)的情况下,你可以使用floor函数得到(0,0)并使用你的映射给tile 1

这样做的一个优点是它不需要你存储瓷砖的所有四个点。 缺点是你必须决定如果一个点位于边缘会发生什么的规则。