Netlogo: Создание квадратной области пятен в центре сетки - PullRequest
0 голосов
/ 17 декабря 2018

Я пытаюсь создать квадрат коричневых пятен с центром в начале моей сетки.Ранее у меня был слайдер на интерфейсе, называемый «сток-радиус-радиус», который идет от 0 до 20. Затем в моем коде я создал круговой набор патчей с центром в начале координат, которые были окрашены в коричневый цвет + 2 и имели радиус"раковина-патч-радиус", и окружающие пятна были зелеными.Вот код, который сработал для этого (спасибо JenB за это!):

;;create the 'sink'
let sink-centre patch 0 0
set sink-patches [patches in-radius sink-patch-radius] of sink-centre
ask sink-patches [ set pcolor brown + 2 ]

;; create the 'source'
set source-patches patches with [pcolor != brown + 2]
ask source-patches [ set pcolor green ]

Итак, теперь я хочу, чтобы эта идея осталась прежней, но вместо круглой «области слива» яхочу, чтобы это был квадрат.Я знаю, что приведенный выше код придется изменить, может быть, даже немного, потому что вы не можете использовать «в радиусе», чтобы сделать квадрат.Я подумываю о том, чтобы сменить ползунок на «раковина-патч-длина», чтобы он регулировал длину сторон квадрата.Тогда мой вопрос будет таким: как мне включить это в мой код, чтобы я получил квадрат коричневых пятен с центром в начале координат?Например, если для параметра «sink-patch-length» задано значение 20, я бы хотел, чтобы квадрат 20x20 (400 ячеек) с центром в начале координат имел цвет коричневый + 2.

Любая помощь в значительной степениоценили!Спасибо.

1 Ответ

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

Использовать встроенную систему координат.Итак, вы хотите (что-то вроде) patches with [abs(pxcor) <= sink-patch-length and abs(pycor) <= sink-patch-length].Если вы хотите, чтобы он был центрирован где-то кроме середины, вам нужно будет немного поиграть, чтобы сделать границы правильными.

...