2014-10-19 41 views
1

我想了解和使用补丁形状和大小与原点有关的一点帮助。我正在尝试标记完全处于特定乌龟形状下的修补程序。例如,如果乌龟是(w x h)的矩形,我想改变该形状下所有色块的颜色或属性,而不仅仅是在原始色块处。当然,使用矩形也许我可以手动为其下的颜色着色,但是有没有其他选择可以在更复杂的乌龟形状下修改补丁?谢谢。NetLogo中龟形状占用的修补程序

回答

2

那么有一个kludgey的方式来做到这一点,有一些人工制品的混淆和其他小问题,如将所有可见对象(海龟,链接,标签,绘图层等)转移到补丁的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 
+0

哇,这是一个很酷的方法来一个不可能的功能,在netlogo :)我试图找出一个不寻常的形状的海龟占据的一般形象的分形维数。谢谢 – 2014-10-23 06:38:39

0

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

如果您正在处理一小组已知形状,例如正方形/三角形/圆形,那么您可以分别处理每个案例并编写自己的代码,以对与该形状对应的颜色块进行着色。但如果你需要这种能力一般,你卡住了。

你可以编写一个扩展来做到这一点,但扩展必须包含所有的原始代码才能真正完成计算形状和补丁网格之间重叠的工作。 NetLogo中没有现成的代码来执行所需的计算。

相关问题