Netlogo - делайте патчи меньше, чтобы четко отображать местоположения всех агентов, сгруппированных в небольшой области - PullRequest
0 голосов
/ 24 декабря 2018

Я моделирую систему доставки по городу.местонахождение агента филиала доставки основано на реальных координатах.Как я могу создать меньший мир netlogo, который может четко отображать всех агентов в определенной области (min-x: 113.783131, max-x: 114.42618; min-y: 22.476584, max-y: 22.809712)?Текущий мир netlogo слишком велик, чтобы сделать видимыми каждого агента (все они сгруппированы в небольшой точке)

1 Ответ

0 голосов
/ 26 декабря 2018

Все, что вам нужно сделать, это написать функцию, которая перераспределяет ваши координаты x и y в диапазон NetLogo.Затем просто вызывайте эту функцию всякий раз, когда вы обращаетесь к координатам реального мира.Ниже приведены функции, которые не зависят от количества исправлений в вашем мире.Возможно, вы захотите поиграть с максимумами и минимумами в функциях, если хотите приблизиться к краю или отойти от него дальше.Кроме того, я бы добавил проверку ошибок (поэтому функция печатает осмысленное сообщение, если вы случайно попытаетесь запросить координаты вне предопределенных вами максимальных и минимальных значений).

Запустите testme, чтобы увидеть, что он делает.

to testme
  clear-all
  create-turtles 1
  [ setxy fix-x 113.8 fix-y 22.6 ]
  create-turtles 1
  [ setxy fix-x 114.49 fix-y 22.8 ]
end

to-report fix-x [#x]
  let minx 113.5
  let maxx 114.5
  report ((#x - minx) / (maxx - minx)) * (max-pxcor - min-pxcor) + min-pxcor
end

to-report fix-y [#y]
  let miny 22.45
  let maxy 22.82
  report ((#y - miny) / (maxy - miny)) * (max-pycor - min-pycor) + min-pycor
end

ОБНОВЛЕНИЕ из комментариев: Если у вас действительно есть набор данных ГИС, просто загрузите его в NetLogo, используя расширение ГИС, и установите конверт.Мир наладится.

...