1

m × n の長方形の部屋があるとします。表面は 1*1 のタイルで覆われています。つまり、m*n 個の正方形のタイルがあります。ランダムポイントが与えられるたびに。プログラムは、そのポイントが配置されている特定のタイルを表示することになっています。タイル張りの表面をシミュレートする最も簡単な方法は何ですか?

最初に私はこれを書きました:

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

表面上の自然数のすべての順序付けられたペアのみを提供します。各タイルは 4 つの点で構成されているので{1: [(0,0), (1,0), (0,1), (1,1)]}、タイルを表すような辞書を使用できるのではないかと考えましたが、点 (0.5,0.5) が実際にタイル内にあるかどうかを確認する方法がわかりません。 1.

4

1 に答える 1

3

各タイルを左下の座標で表すと、フロア関数を取得することでポイントがどこにあるかを知ることができます。すなわち

x= math.floor(x)

ポイント (0.5,0.5) の場合、床関数を使用して (0,0) を取得し、マッピングを使用してタイル 1 を与えることができます

これの利点は、タイルの 4 つのポイントすべてを保存する必要がないことです。欠点は、点がエッジ上にある場合にどうなるかについてルールを決定する必要があることです。

于 2013-04-10T22:43:16.657 に答える