我经常使用补丁操作位图,通常是让每个补丁拥有一个像这样的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
答案 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.