NETLOGO:使用修补程序绘制矩形和形状

时间:2018-11-12 19:53:18

标签: netlogo

我正在尝试创建一个使用补丁绘制正方形和矩形的代码。所使用的变量是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 :(得分:3)

两个可能的修复:“ pxcor <= w”和“ pycor> =(-l + 2)”

从条件来看,pxcor的“ x坐标”似乎在您的“ x” x坐标和“ w” x坐标之间,这意味着pxcor正在从“ x”和宽度(“ w”)中进行选择。 pycor也是一样。通过一些重写,界限变得更加清晰。

重写条件式(其中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 ]