根据 turtle-own 变量更改 NetLogo 中代理的颜色

Changing the color of agents in NetLogo according to a turtle-own variable

我正在 netlogo 中编写一个简单的食物交换模型,我希望代理在模型中随着 [food] 级别的变化而改变颜色。食物量在 [0,1] 范围内,我希望颜色从白色变为红色(白色 = food 级别为零,红色 = food 级别为 1),代码如下:

ask turtles [
    set color scale-color red food 1  0 ]

但是我的乌龟在食物交换过程中不知何故变黑了!海龟自己的food值可以是[0,1]范围内的任意浮点数。有谁知道我怎样才能使颜色保持在红色(红色到白色)的浅色范围内而不是黑色?

刻度颜色和范围

从上面的例子来看,颜色和数字是正确的,但问题似乎与提供的范围有关。由于食物在 [0,1] 范围内,因此颜色渐变应与变化相匹配,尽管它将从 0(白色)到 1(黑色)。

正如 JenB 所提到的,您可能想要扩展预期值的范围。将 scale-color 的范围从 [0,1] 更改为 [0,2] 会有所帮助,因为对于 scale-color,范围的中点就是提供的颜色。

[ set color scale-color red food 2 0 ]

只要食物在[0,1]以内,这个例子应该在红色和白色之间波动。