如何手动调整netlogo接口的包装拓扑?

如何手动调整netlogo接口的包装拓扑?,netlogo,Netlogo,Netlogo仅提供四个拓扑选项,指示海龟和补丁在到达Netlogo世界或界面的任何给定边缘时所做的操作,即长方体、圆环体、水平环绕和垂直环绕。。。有没有办法调整这些选项,以便只包裹一条边?或者三条边被包裹 尼格斯-我记得,我永远不会忘记一只柯基犬!无论如何,正如Jen提到的,没有内置的,但是你可以将它构建到你的海龟移动规则中。例如,使用此设置: to setup ca crt 10 [ pd ] reset-ticks end 如果你想让你的乌龟把一个边界当作封闭的,你可以让它们

Netlogo仅提供四个拓扑选项,指示海龟和补丁在到达Netlogo世界或界面的任何给定边缘时所做的操作,即长方体、圆环体、水平环绕和垂直环绕。。。有没有办法调整这些选项,以便只包裹一条边?或者三条边被包裹

尼格斯-我记得,我永远不会忘记一只柯基犬!无论如何,正如Jen提到的,没有内置的,但是你可以将它构建到你的海龟移动规则中。例如,使用此设置:

to setup
  ca
  crt 10 [ pd ]
  reset-ticks
end
如果你想让你的乌龟把一个边界当作封闭的,你可以让它们检查它们的
前方补丁
,不管它们的移动速度是多少(这里的示例速度为1),然后做一个简单的数学运算,看看它们是否被“允许”在该边界处缠绕。要关闭左边界,请尝试:

to left-closed ; turtle procedure
  ask turtles [ 
    let target patch-ahead 1 
    if  ( ( [pxcor] of target ) - pxcor ) <= 1 [
      fd 1
    ]
  ] 
  tick  
end
现在,上面的
右关闭
过程的一个修改版本将其转换为
报告

to-report closed-border-right? [ target-patch ]
  report ( pxcor - ( [pxcor] of patch-ahead 1 ) ) <= 1 
end
我们应该预计它们最终会被“困”在打开的边界和红墙之间——正如我们预计的那样,一旦海龟通过左侧边界,它们就无法返回:


尼格斯-我记得,我永远不会忘记一只柯基犬!无论如何,正如Jen提到的,没有内置的,但是你可以将它构建到你的海龟移动规则中。例如,使用此设置:

to setup
  ca
  crt 10 [ pd ]
  reset-ticks
end
如果你想让你的乌龟把一个边界当作封闭的,你可以让它们检查它们的
前方补丁
,不管它们的移动速度是多少(这里的示例速度为1),然后做一个简单的数学运算,看看它们是否被“允许”在该边界处缠绕。要关闭左边界,请尝试:

to left-closed ; turtle procedure
  ask turtles [ 
    let target patch-ahead 1 
    if  ( ( [pxcor] of target ) - pxcor ) <= 1 [
      fd 1
    ]
  ] 
  tick  
end
现在,上面的
右关闭
过程的一个修改版本将其转换为
报告

to-report closed-border-right? [ target-patch ]
  report ( pxcor - ( [pxcor] of patch-ahead 1 ) ) <= 1 
end
我们应该预计它们最终会被“困”在打开的边界和红墙之间——正如我们预计的那样,一旦海龟通过左侧边界,它们就无法返回:


将一个边缘包裹起来意味着什么?在另一边会发生什么?@LukeC你可能不记得我了,但我记得很清楚,你帮了我很大的忙,解决了之前的几个netlogo问题!无论如何,在另一边,它们是海龟,要么反射回世界,要么死去!所以你希望他们能够(例如)从右手边走出来,出现在左手边,但是如果他们在左手边尝试向左走,什么都不会发生?请注意,不包裹并不意味着它们现在死亡或反射,它们只是停止移动而已。@JenB完全正确,谢谢您的帮助。如果它们能在左手边反射回来继续行走,那就太好了。是的,穿过右手边,然后在左手边重新出现。绝对没有内置这样的东西。你必须用包装来建立世界,然后有一堵墙,只允许在一个方向上移动。在模型库中搜索“墙”以获得一些关于如何处理此问题的想法。将一条边包裹起来意味着什么?在另一边会发生什么?@LukeC你可能不记得我了,但我记得很清楚,你帮了我很大的忙,解决了之前的几个netlogo问题!无论如何,在另一边,它们是海龟,要么反射回世界,要么死去!所以你希望他们能够(例如)从右手边走出来,出现在左手边,但是如果他们在左手边尝试向左走,什么都不会发生?请注意,不包裹并不意味着它们现在死亡或反射,它们只是停止移动而已。@JenB完全正确,谢谢您的帮助。如果它们能在左手边反射回来继续行走,那就太好了。是的,穿过右手边,然后在左手边重新出现。绝对没有内置这样的东西。你必须用包装来建立世界,然后有一堵墙,只允许在一个方向上移动。在模型库中搜索“墙”以获得一些关于如何处理此问题的想法。通过实现上述代码,海龟似乎仍然能够渗透到左右边界,并出现在另一侧继续移动,而不是从任何边界反射回世界,好像世界仍然被完全包裹着。有什么想法吗?@nigus21-你能再解释一下吗?我已经编辑提供了一个工作的例子,所以如果它没有做你期望的,请让我知道!从实现上述代码来看,海龟似乎仍然能够渗透左右边界,并出现在另一侧继续移动,而不是从任何边界反射回世界,好像世界仍然被完全包裹着。有什么想法吗?@nigus21-你能再解释一下吗?我已经编辑提供了一个工作的例子,所以如果它没有做你期望的,请让我知道!