首页 > 解决方案 > 根据乌龟自己的变量更改 NetLogo 中代理的颜色

问题描述

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

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

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

标签: colorsnetlogoagent-based-modeling

解决方案


刻度颜色和范围

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

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

[ set color scale-color red food 2 0 ]

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


推荐阅读