Заполнение массива с помощью шума Перлина

Я пытаюсь заполнить двумерный массив с помощью шума Перлина. Но получается, что массив разбит по диагонали так, что верхний левый треугольник всегда больше правого нижнего треугольника. Возможно я что то делаю не так, подскажите пожалуйста, как заполнить массив равномерно

Вот мой код. В нем я получаю значения с помощью шума Перлина и преобразую их от 0 до 5

from opensimplex import OpenSimplex
gen = OpenSimplex()
def noise(nx, ny):
    # Rescale from -1.0:+1.0 to 0.0:1.0
    return gen.noise2d(nx, ny) / 2.0 + 0.5

width = 20
height = 20

value = []
for y in range(height):
    value.append([0] * width)
    for x in range(width):
        nx = x/width - 0.5
        ny = y/height - 0.5
        value[y][x] = noise(nx, ny)

for x in range(20):
    for y in range(20):
        v = value[x][y]
        if v < 0.2:
            value[x][y] = 0
        elif v < 0.4:
            value[x][y] = 1
        elif v < 0.6:
            value[x][y] = 2
        elif v < 0.8:
            value[x][y] = 3
        else:
            value[x][y] = 5

for row in value:
    for item in row:
        print(item, end=' ')
    print()

В итоге я получаю вот такой массив:

3 3 5 5 5 3 3 3 3 3 3 3 2 2 2 2 2 2 1 1 
3 3 3 3 3 3 3 3 3 3 3 3 2 2 2 2 2 1 1 1 
3 3 3 3 3 3 3 3 3 3 3 2 2 2 2 2 2 1 1 1 
3 3 3 3 3 3 3 3 3 3 3 2 2 2 2 2 1 1 1 1 
3 3 3 3 3 3 3 3 3 3 2 2 2 2 2 2 1 1 1 1 
3 3 3 3 3 3 3 3 3 3 2 2 2 2 2 1 1 1 1 1 
3 3 3 3 3 3 3 3 3 3 2 2 2 2 2 1 1 1 1 1 
3 3 3 3 3 3 3 3 3 2 2 2 2 2 1 1 1 1 1 1 
3 3 3 3 3 3 3 3 3 2 2 2 2 2 1 1 1 1 1 1 
3 3 3 3 3 3 3 3 2 2 2 2 2 1 1 1 1 1 1 0 
3 3 3 3 3 3 3 3 2 2 2 2 2 1 1 1 1 1 1 0 
3 3 3 3 3 3 3 3 2 2 2 2 1 1 1 1 1 1 0 0 
3 3 3 3 3 3 3 2 2 2 2 2 1 1 1 1 1 1 0 0 
3 3 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 0 0 0 
2 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 0 0 0 
2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 0 0 0 
2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 0 0 0 0 
2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 0 0 0 0 
2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 0 0 0 0 0 
2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 0

Ответы (0 шт):