首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Netlogo中指定海龟和补丁之间的不同距离

如何在Netlogo中指定海龟和补丁之间的不同距离
EN

Stack Overflow用户
提问于 2014-12-12 23:47:36
回答 1查看 1.1K关注 0票数 1

我是Netlogo的新手。我试图创建一个交换意见的模型,以便为不受欢迎的设施找到合适的位置。该模型包含了三种不同观点的人。

我导入了一个包含四个不同土地使用类别(建筑、农业、森林、水)的GIS栅格图层。所有品种被随机分配到土地利用类“建筑物”。这种交互是通过每个节拍的两个代理之间的随机配对连接进行的。关于一个位置的合适程度的默认意见值应该基于一定距离内的土地使用类别。距离应分为近距离(<= 20)、中距离( 21 - 50 )和远距离(> 50 )。如果一只海龟被要求给出它对某个斑块的看法,它应该自动计算出它们彼此之间的距离。

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

第一次尝试是这样的:

代码语言:javascript
复制
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

第二次尝试是这样的:

海龟位于a处,斑块位于b处,自动计算a和b之间的距离

代码语言:javascript
复制
  if ab <= 20
  [set location near]
  if ab > 20 and ab <= 50
  [set location ...}
end

如果有人能为这个问题提供任何解决方案,我将不胜感激。提前感谢!

1月

EN

回答 1

Stack Overflow用户

发布于 2014-12-13 09:09:08

您正在尝试将品种变量名作为参数进行传递。这是一个语法错误。使用distancexy时,期望值是数字。你可以使用loop来检查所有你想检查的职位。然而,我认为你的乌龟应该有变量来存储每个位置的意见。

代码语言:javascript
复制
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
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27447191

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档