-2

次のリストを作成するための、最速で最も「pythonic」な方法を探しています。

タプルのリストとして表される座標グリッドがあるとします。それらのいずれかを選択すると、選択した座標を中心としたボックス内にあるかのように、近くのすべての座標のリストを取得する必要があります。

たとえば、100x100 グリッドで (50,50) を選択した場合、リストは (40,40) で始まり (60,60) で終わり、その間にボックスを作成するすべての座標が含まれます。

pygame 衝突検出を使用してこれを行うことができますが、使用しているグリッドが非常に大きいため、ルックアップ コストが高くなりすぎます。座標に直接アクセスする方がはるかに優れたソリューションです。

4

2 に答える 2

0

これは 1 行で行うことができ、L が大きすぎない場合はリストを使用しても問題ありません。x は中央の x 座標、y は中央の y、L はボックスの長さの半分、およびグリッドであることに注意してください。タプルの配列です:

myBox = grid[x - L:x + L][y - L:x + L]

代わりに、L をボックスの全長にしたい場合は、x と y を下限に設定すると、次のようになります。

myBox = grid[x:x + L][y:y + L]
于 2013-04-27T21:23:52.797 に答える