1

假设我们有一个 m 乘 n 的矩形房间。表面覆盖着 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.

4

1 回答 1

3

我会用最左下角的坐标来表示每个图块,这样你就可以通过取它的 floor 函数来知道一个点的位置。IE

x= math.floor(x)

在点 (0.5,0.5) 的情况下,您可以使用 floor 函数来获取 (0,0) 并使用您的映射来给出图块 1

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

于 2013-04-10T22:43:16.657 回答