Netlogo导出世界格式
我一直在尝试找出导出世界是如何工作的,特别是绘图部分是如何工作的 我创建了以下代码,以使用默认环境大小max pxcor和max pycor 16进行实验。如果您运行本文末尾显示的代码,生成的每个文件将为5兆字节,因此运行一分钟后很容易使用超过1千兆字节的数据 无论如何,我的问题是:绘图部分是如何工作的?我看到第一个条目是-16.4,16.4。我在下面的简单表格中总结了我的一些观察结果。第一列显示海龟移动了多少,第二列显示CSV文件中的部分输出Netlogo导出世界格式,netlogo,Netlogo,我一直在尝试找出导出世界是如何工作的,特别是绘图部分是如何工作的 我创建了以下代码,以使用默认环境大小max pxcor和max pycor 16进行实验。如果您运行本文末尾显示的代码,生成的每个文件将为5兆字节,因此运行一分钟后很容易使用超过1千兆字节的数据 无论如何,我的问题是:绘图部分是如何工作的?我看到第一个条目是-16.4,16.4。我在下面的简单表格中总结了我的一些观察结果。第一列显示海龟移动了多少,第二列显示CSV文件中的部分输出 0.001 FF1D9F78 0.016 FF
0.001 FF1D9F78
0.016 FF1D9F78FF1D9F78
0.093 FF1D9F78FF1D9F78FF1D9F78
我还看到,第一个条目是在海龟移动0.001时创建的。第二个条目似乎发生在海龟移动0.016时,第三个条目是0.093
我正试图找出可能的模式,但似乎没有。其中一个条目在CSV文件中代表多少海龟移动
谢谢
----代码如下
globals
[
totalAmount
]
to setup
ca
crt 1
[
setxy -16.4 16.4
pd
set heading 90
set color turquoise
]
set totalAmount 0
end
to go
ask turtles
[
fd moveAmount
]
set totalAmount moveAmount + totalAmount
export
end
to export
let filetemp word "turtletest" totalAmount
let filename word filetemp ".csv"
;print filename
export-world filename
end
绘图层只是一个位图–一个像素网格。它不知道海龟们移动了什么,移动了多远,它只知道海龟们在移动时用什么像素着色。在内部,它是一个
java.awt.image.buffereImage
和TYPE\u INT\u ARGB
编码
通过以下代码将其写入导出的世界文件:
其中,colors
是支持BuffereImage的整数数组,toHexString
只是将字节写入十六进制数字()
如果您的图像大部分是黑色的,您将在文件中看到大量00
字节
至于非零字节,我觉得FF1D9F78是一个alpha=FF(不透明)、红色=29、绿色=159、蓝色=120的像素。至少,我认为这是正确的解释?这对你们在屏幕上看到的东西是合理的吗?也许A-R-G-B字节的顺序是相反的?要仔细检查它,我需要做导出视图
,然后在一个程序中查看生成的PNG文件,该程序可以告诉我单个像素的RGB值——我现在手头没有这样的程序。但希望这能让你走上正轨