Netlogo - 如何将乌龟移到顶端?

时间:2014-11-05 02:42:35

标签: netlogo

例如,我在一个补丁中有10只乌龟,如何将特定的乌龟(乌龟[color = red])移到顶部? 谢谢你的帮助!

2 个答案:

答案 0 :(得分:3)

我将假设问题是关于" z-order"海龟和#34;将乌龟移到顶部",意味着"将它涂在其他海龟上面#34;。

有两个因素决定了NetLogo中的绘制顺序:品种和ẁho数字。品种优先。根据{{​​3}}:

  

宣布品种的顺序也是它们在视图中分层的顺序。因此,后面定义的品种将出现在之前定义的品种之上;

同一品种的海龟按其创作顺序绘制(在NetLogo中通过who编号表示):较旧的海龟首先涂漆,而较新的海龟涂在上面。

创建顺序不可修改,但如果代码中没有任何内容持有海龟引用或who数字(后者无论如何都是不可取的),您可以使用{{ 3}}创建一个乌龟的克隆然后立即杀死旧乌龟。例如:

to setup
  clear-all
  create-ordered-turtles 10 [ set size 10 ]
  ask turtles with [ color = red ] [
    hatch 1
    die
  ]
end

最后一行将把所有的红海龟(在这种情况下只有一只)放在最上面。

如果由于某种原因你无法做到这一点怎么办?然后你可以使用品种:

breed [ background-turtles background-turtle ]
breed [ foreground-turtles foreground-turtle ]

to setup
  clear-all
  create-ordered-background-turtles 10 [ set size 10 ]
  ask turtles with [ color = red ] [
    set breed foreground-turtles
  ]
end

你需要尽可能多的品种和#34;层"海龟这可能是也可能不方便。最佳方法取决于您的具体用例。

答案 1 :(得分:1)

有些含糊不清。

将乌龟移动到补丁的顶部

 Set ycor pycor + .5

将其移至视图顶部

 Set ycor max-pycor

以Photoshop的方式使其成为堆栈的顶部。不那么容易。 海龟按谁的ids顺序显示。谁不能改变ids。因此,如果你想让红色在顶部或者最后创建它,或者让它与顶部的乌龟交换值。遗憾。