直接操作netlogo pcolor RGB更有效吗?

时间:2015-11-12 17:45:08

标签: netlogo

我经常使用补丁操作位图,通常是让每个补丁拥有一个像这样的R,G和B

 patches-own [R G B]

并使用

 ask patches [set pcolor rgb R G B]

显示。这里的问题是我有效地存储了每个变量两次。一次在补丁R G和B中,一次在每个补丁的Pcolor中。我使用非常大的数组,所以欢迎任何效率。

我想开始只使用没有额外变量的Pcolor,但担心存储rgb pcolor的列表与普通pcolor一样不精确。我还担心,我将不得不使用访问Pcolor列表的诡计会使事情陷入困境。

即。是

set pcolor pcolor replace-item 1 100

优于

set b 100
set pcolor rgb 0 100 0

1 个答案:

答案 0 :(得分:2)

首先,变量使用的内存几乎肯定是可以忽略的,除非你有一些疯狂的补丁,在这种情况下,你可能会遇到更大的问题。

也就是说,当您执行set pcolor rgb 0 100 0时,您实际上只是将pcolor设置为列表[0 100 0]。数字没有精度损失:

> ask patch 0 0 [ set pcolor [0.123 45.678 99] show pcolor ]
(patch 0 0): [0.123 45.678 99]

唯一的例外是组件大于255或小于0.