在NetLogo中由龟形状占用的补丁

时间:2014-10-19 10:15:23

标签: size shape patch netlogo turtle-graphics

我想帮助理解和使用补丁形状和大小与原点。我试图标记完全在特定龟形状下的补丁。例如,如果乌龟是(w x h)的矩形,我想改变该形状下所有补丁的颜色或属性,而不仅仅是原始补丁。当然,使用矩形可能我可以手动为下面的补丁着色,但是有没有选择在更复杂的乌龟形状下修改补丁?谢谢。

2 个答案:

答案 0 :(得分:2)

有一种方法可以做到这一点,它有一些别名和其他小问题,如将所有可见对象(海龟,链接,标签,绘图层等)转移到补丁的pcolor。但至少它是可能的。它利用了包含的位图扩展。主要想法是在paint-patches下面。

extensions [bitmap]

to setup
  clear-all
  resize-world 0 199 0 199
  set-patch-size 1 
  ask n-of 30 patches [ sprout 1 [set size 15]]
end

to paint-patches
  let bmap bitmap:from-view
  bitmap:copy-to-pcolors bmap true
  ask turtles [ht] ; to show that the turtle shape is now painted to pcolors
end

答案 1 :(得分:0)

在NetLogo中这是不可能的。龟形是纯粹的视觉。没有办法访问龟形的精确轮廓,然后以某种方式使用轮廓作为计算的基础。

如果您正在使用一小组已知形状(例如方形/三角形/圆形),那么您可以单独处理每个案例并编写自己的代码以对应于形状的色块。但是,如果你需要一般这个功能,你就会陷入困境。

您可以编写扩展来执行此操作,但扩展必须包含所有原始代码才能实际计算形状和补丁网格之间的重叠。 NetLogo中没有可以进行所需计算的现有代码。