如何使用 netlogo 计算补丁之间的边到边距离?使用函数“距离”,从补丁的中心计算补丁之间的距离。
非常感谢您的帮助。祝你有个美好的一天
如果要测量补丁边缘之间的距离,可以在补丁边缘创建临时海龟并测量这些海龟之间的距离。我假设您想要位于两个补丁边缘的任意两个点之间的最短距离。在这种情况下,您可以在每个面片(四个角和四个中间边缘点)上创建 8 个海龟,并取任意一对海龟之间的最小距离。
to-report create-edge-turtles [ p ]
let edge-turtles nobody
ask p [
foreach sort neighbors [
sprout 1 [
face ?
fd distance ? / 2
set edge-turtles (turtle-set edge-turtles self)
]
]
]
report edge-turtles
end
to-report edge-distance [ patch-a patch-b ]
let edges-a create-edge-turtles patch-a
let edges-b create-edge-turtles patch-b
let result min [ min [ distance myself ] of edges-b ] of edges-a
ask edges-a [ die ]
ask edges-b [ die ]
report result
end