我看过这里:Example code Description
NetLogo project with vector map data
我正在使用矢量地图,其中是道路。然后我绘制道路的链接。在起点的图像中,即拉脱维亚的首都(里加)。左边是文茨皮尔斯市,距离里加约200公里。最重要的是拉脱维亚/爱沙尼亚边境,也约200公里。到底部约100公里。
我想要的是计算我需要为汽车充电站的位置。平均绿色汽车可以用充满电的电池行驶50公里。所以。我知道文茨皮尔斯大约200公里。我们在那条路上需要4个充电站。
理念1号是从起点充电站到每个方向每50公里之后。 (图片上的树符号)。此时充电站(树木)我将放置在随机位置:
to setup-stacijas
set-default-shape boats "tree"
create-boats num-boats [
set speed 0 ; min-speed + random-float (max-speed - min-speed)
let l one-of links
set size 18
set-next-stacija-link l [end1] of l
]
end
to set-next-stacija-link [l n] ;; boat proc
set cur-link l
move-to n
ifelse n = [end1] of l [set to-node [end2] of l] [set to-node [end1] of l]
face to-node
end
问题:
如何计算到所有方向的距离xx公里?
答案 0 :(得分:1)
AGENT(补丁或海龟)可以使用DISTANCE原语和MOD运算符来查找50英里外的倍数的其他代理。
我假设我们的模拟中有1个补丁= 1英里 我假设“链接”连接到品种“节点”的乌龟 我假设START是一个包含“节点”的变量。
;; get all nodes that are multiples of 50 miles from start
let stations no-turtles
ask start [ set stations nodes with [ (floor distance myself) MOD 50 = 0 ]
由于许多原因,这并不完美。
其他一些迭代方法表明了自己:
在道路上设置“旅行者”,每隔50(或左右)英里就会“停放”充电站。
通过这种方式,车站将被放置在所有道路上。
用十六进制网格填充补丁,半径为25英里或几英里。让他们迁移。
这可能确实有效。
用电台覆盖,然后销毁,直到只有足够的
那个可能不是最佳的。
模拟道路上的汽车 - 创建他们死亡的车站。
最终,电台会在需要的地方弹出。这个很有趣。
~~詹姆斯