NETLOGO: рисование прямоугольников и фигур с помощью патчей - PullRequest
0 голосов
/ 12 ноября 2018

Я пытаюсь создать код, который рисует квадраты и прямоугольник, используя патчи.Используемые переменные: x и y для координат верхнего левого угла фигуры, l и w для длины и ширины и c для цвета.Я использовал это, и он создает прямоугольник, где 1,1 - верхний левый угол, и он имеет длину 5 и ширину 4.

to rectanglebase [x y w l c]
  ask patches with [pxcor <= w and pxcor >= x and pycor <= y and pycor >= (- l + 2)]
  [set pcolor c]
end
to therectangle
  rectanglebase 1 1 4 5 red
end

Если я хочу, чтобы x и y были другими значениямиЧто я должен исправить?каждый раз, когда я добавляю другое значение, вывод не то, что я хочу.Какие модификации нужны моему коду, чтобы нарисованный прямоугольник был в координатах x и y, которые я поместил в прямоугольник?

1 Ответ

0 голосов
/ 12 ноября 2018

Два возможных исправления: «pxcor <= w» и «pycor> = (- l + 2)»

В условном выражении pxcor «x координаты» кажутся между вашими «x» x-координировать и "w" x-координата, что означает, что pxcor выбирает из "x" и вашей ширины ("w").Это то же самое с пироком.При некоторой переписке граница становится более четкой.

Перезаписано Условно (где l - длина, а w - ширина):

ask patches with
  [ w >= pxcor and pxcor >= x
    and
    y >= pycor and pycor >= (- l + 2) ] [ set pcolor c ]

Возможное изменение (*: изменение):

ask patches with
  [ * w + x >= pxcor and pxcor >= x
    and
    y >= pycor and pycor >= *(y - l) ] [ set pcolor c ]
...