我想,给定一个海龟列表,将包含这些海龟的视图部分导出为图像。能够导出由一组边界指定的部分视图将解决此问题。也就是说,像export-view-of-turtles list-of-turtles
或export-view-rectangle min-xcor max-xcor min-ycor max-ycor
这样的函数是理想的。
显然,完全在NetLogo中运行的解决方案是最好的,但我发现这不太可能:export-view
是我所知道的唯一一个导出视图图像的函数,而且只有整个视图。但是,如果有一个插件,那就太棒了。
我的最后一招是只导出视图,然后运行一个相应剪辑它的脚本。如果没有更好的解决方案,我会这样做,并发布脚本。
答案 0 :(得分:2)
好吧,这有点脏,但似乎有效。基本上,下面在临时文件中输出世界状态,记录有关海龟的数据,根据这些海龟与中心的距离调整视图大小,从记录的数据中重新创建那些海龟,导出视图,然后恢复原始世界状态。这是代码:
to export-view-of-turtles [ filename the-turtles ]
let center-patch min-one-of patches [ sum [ (distance myself ^ 2) ] of the-turtles ]
let turtle-props [ (list
(- distance center-patch * sin towards center-patch) ; xcor relative to center patch
(- distance center-patch * cos towards center-patch) ; ycor relative to center patch
heading size shape label color
) ] of the-turtles
let max-x max map [ first ? + item 3 ? ] turtle-props
let min-x min map [ first ? - item 3 ? ] turtle-props
let max-y max map [ item 1 ? + item 3 ? ] turtle-props
let min-y min map [ item 1 ? - item 3 ? ] turtle-props
let world-state-backup (word "temp-world-" date-and-time ".csv")
export-world world-state-backup
resize-world min-x max-x min-y max-y
foreach turtle-props [
crt 1 [
setxy first ? (item 1 ?)
set heading (item 2 ?)
set size (item 3 ?)
set shape (item 4 ?)
set label (item 5 ?)
set color (item 6 ?)
]
]
export-view filename
import-world world-state-backup
file-delete world-state-backup
end
使用示例。给出:
致电export-view-of-turtles "test.png" [ turtles in-radius 5 ] of turtle 85
给出:
注意: