2013-04-10 13 views
1

假設我們有一個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.

回答

3

我會代表每個瓦片的左下角座標,這樣你就可以通過其底層函數知道點的位置。即

x= math.floor(x) 
在點(0.5,0.5),你可以把地板函數來獲取(0,0),並使用你的映射給瓷磚1

這樣的一個優點是它的情況下

不需要你存儲瓦片的所有四個點。 缺點是你必須決定一個規則,如果一個點位於邊緣會發生什麼。