Netlogo создание и распространение ландшафта - PullRequest
2 голосов
/ 07 марта 2011

Мне нужна помощь в настройке определенной местности. У меня есть мир, размером 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

1 Ответ

2 голосов
/ 10 марта 2011

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

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 ]

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

...