2

Pythonでポリゴンをラスタライズするには? たとえば、私はこのポリゴンを持っています:

[(20, 13), (21, 12), (20, 12), (19, 12), (21, 13)]

これは境界線であり、その内側のすべてのポイント (タイル) を見つける必要があります。外部パッケージなしでPythonでそれを行うにはどうすればよいですか? ありがとう。

4

1 に答える 1

0

簡単な方法:

def raster(poly):
    for index in range(len(poly) - 1):
        t1 = poly[index]
        t2 = poly[index + 1]
        xdef = t1[0] - t2[0]
        ydef = t1[1] - t2[1]
        if abs(xdef) > 1:
            lo = min(t1[0], t2[0])
            hi = max(t1[0], t2[0])
            j = lo
            while(j <= hi):
                new = (j, t1[1])
                poly.append(new)
                j += 1
        if abs(ydef) > 1:
            lo = min(t1[1], t2[1])
            hi = max(t1[1], t2[1])
            j = lo
            while(j <= hi):
                new = (t1[0], j)
                poly.append(new)
                j += 1
    return poly
于 2014-01-24T19:37:05.497 に答える