例如,我在一个补丁中有10只乌龟,如何将特定的乌龟(乌龟[color = red])移到顶部? 谢谢你的帮助!
答案 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。因此,如果你想让红色在顶部或者最后创建它,或者让它与顶部的乌龟交换值。遗憾。