【问题标题】:How to assign different distances between turtles and patches in Netlogo如何在 Netlogo 中分配海龟和补丁之间的不同距离
【发布时间】:2014-12-13 09:09:07
【问题描述】:

我对 Netlogo 很陌生。我试图创建一个交换意见的模型,以便为不受欢迎的设施找到合适的位置。该模型包含三个不同意见的人。

我导入了一个 GIS 栅格图层,其中包含四种不同的土地利用类别(建筑物、农业、森林、水)。所有品种被随机分配到土地利用类“建筑物”。交互是通过每个滴答声中两个代理之间的随机配对连接进行的。关于一个位置可能有多合适的默认意见值应基于一定距离内的土地利用类别。距离应分为近( 50)。如果海龟被要求对某个补丁发表意见,则应自动计算两者之间的距离。

但是,我在找到一个代码来定义每只海龟离它的近、中或远距离时确实存在一些问题。到目前为止我有两个主要的想法,但是我写的代码并没有提供令人满意的结果。

第一次尝试是这样的:

calc-distance
  ask turtles [
  if (distancexy pxcor pycor) <= 20
  [set location near]
  if (distancexy pxcor pycor) > 20 and (distancexy pxcor pycor) <= 50
  [set location middle]
   if (distancexy pxcor pycor) > 50
  [set location far]]
end

第二次尝试是这样的:

海龟位于 补丁位于 b 自动计算a和b之间的距离

  if ab <= 20
  [set location near]
  if ab > 20 and ab <= 50
  [set location ...}
end

如果有人可以为这个问题提供任何解决方案,我会很高兴。提前致谢!

一月

【问题讨论】:

  • 您能解释一下不满意的地方吗?例如,您是否收到错误消息(如果有,是什么)或答案是否错误。看看它,我希望您在第一次尝试时会出错,因为您需要带引号的 [set location "near"] 之类的东西。

标签: netlogo


【解决方案1】:

您正在尝试将品种变量名称作为参数传递。那是语法错误。 使用 distancexy 时,预期值为数字。您可以使用loop 来检查您要检查的所有职位。但是我认为你的海龟应该有变量来存储每个位置的意见。

calc-distance
  ask turtles [
  if (distancexy point1-pxcor point1-pycor) <= 20
  [set point1-location "near"]
  if (distancexy point1-pxcor point1-pycor) > 20 and (distancexy point1-pxcor point1-pycor) <= 50
  [set point1-location "middle"]
   if (distancexy point1-pxcor point1-pycor) > 50
  [set point1-location "far"]
  ]
  . . . continue with all other locations OR use loop.
end

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多