Создание и распространение Netlogo Terrain

Мне нужна помощь в настройке определенного ландшафта. У меня есть мир размером 200x200 патчей, и каждый патч имеет размер 2 пикселя. Что я пытаюсь сделать, так это создать холм, начинающийся с начала координат, а затем равномерно распределить высоту по краям мира.

Исходная точка будет иметь самую высокую высоту: 999, а участки по краям будут иметь высоты, близкие к 0. От краев мира высота должна постоянно увеличиваться, пока она не достигнет исходной точки. чтобы холм простирался до краев мира - посередине есть небольшая выпуклость, а остальной мир совершенно плоский.

Может ли кто-нибудь помочь в настройке ландшафта и объяснить, как я могу правильно распределить высоту?

Вот код, который у меня есть до сих пор:

patches-own [altitude]

to setup

  clear-all
  ask patch 0 0 [set altitude 1.0]

  repeat 100 [diffuse altitude 0.25]  ;; this needs to be changed?

  scale-patches
  color-patches 

end




to scale-patches

  let low [altitude] of min-one-of patches [altitude]  ;; altitude of the lowest patch
  let high [altitude] of max-one-of patches [altitude] ;; altitude of the highest patch
  let range high - low                              ; difference from lowest to highest

  ask patches [
    set altitude altitude - low                    ; Shift every patch down so lowest altitude is 0
    set altitude altitude * 999.0 / range          ; Scale every patch so that the lowest is 0 and highest is 999
  ]

end



to color-patches

  ask patches [set pcolor scale-color green altitude 0 1000]

end

person meerkat    schedule 07.03.2011    source источник


Ответы (1)


Как насчет замены этих двух строк:

ask patch 0 0 [set altitude 1.0]
repeat 100 [diffuse altitude 0.25]  ;; this needs to be changed?

с этим:

ask patches [ set altitude world-width - distance patch 0 0 ]

Он не использует диффузию, но, может быть, он все равно решает вашу проблему?

person Seth Tisue    schedule 10.03.2011
comment
Спасибо. Это делает именно то, что я хотел. - person meerkat; 11.03.2011