【问题标题】:Patches occupied by turtle shape in NetLogoNetLogo中乌龟形状占据的补丁
【发布时间】:2014-10-19 10:15:22
【问题描述】:

我想在理解和使用补丁形状和大小与原点方面得到一点帮助。我正在尝试标记恰好在特定海龟形状下的补丁。例如,如果海龟是(w x h)的矩形,我想更改该形状下所有补丁的颜色或属性,而不仅仅是在原点补丁。当然,使用矩形也许我可以手动为下面的补丁着色,但是有没有任何选项可以修改更复杂的海龟形状下的补丁?谢谢。

【问题讨论】:

    标签: size shape patch netlogo turtle-graphics


    【解决方案1】:

    好吧,有一种笨拙的方法可以做到这一点,它有一些锯齿和其他小问题,比如将所有可见对象(海龟、链接、标签、绘图层等)转移到补丁的 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
    

    【讨论】:

    • 哇,这是 netlogo 中不可能实现的功能的一个很酷的方法 :) 我试图找出形状不寻常的海龟占据的一般图像的分形维数。谢谢
    【解决方案2】:

    这在 NetLogo 中是不可能的。海龟的形状纯粹是视觉上的。无法访问海龟形状的确切轮廓,然后以某种方式将轮廓用作计算的基础。

    如果您正在处理一小组已知形状,例如正方形/三角形/圆形,那么您可以单独处理每种情况,并编写自己的代码来对应形状的色块。但是如果你一般需要这种能力,你就被困住了。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-15
      • 1970-01-01
      • 1970-01-01
      • 2022-10-24
      • 1970-01-01
      • 2017-04-05
      相关资源
      最近更新 更多