我正在尝试创建一个使用补丁绘制正方形和矩形的代码。所使用的变量是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坐标处?
答案 0 :(得分:3)
从条件来看,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 ]