创建颜色酿造器并获得其平均值

Sah*_*har 6 gradient colors netlogo

我试图在每次孵化时在两个不同的盒子中为我的海龟分配一个颜色酿酒师,并找到每个孵化中海龟的平均颜色.

我可以用托盘扩展轻松完成它,但它没有为Netlogo 5.1更新,因此,我使用渐变扩展,使用RGB颜色([ n n n])作为输入和输出,因此,我找不到颜色的平均值.

这是我的代码的相关部分:

hatch 1 
[ set generation generation + 0.1  
  ifelse ( tlake = "A" )
    [ set color gradient:scale [ [255 0 0 ] [255 255 0] [0 0 255] ] (generation) 0 500 ]
    [ set color gradient:scale [ [255 0 0 ] [255 255 0] [0 0 255] ] (generation) 500 0 ]                
  set AVEA mean [color] of (turtles with [tlake = "A"])
  set AVEB mean [color] of (turtles with [tlake = "B"])
....
]
Run Code Online (Sandbox Code Playgroud)

这是我得到的错误:

  Can't find the mean of a list that contains non-numbers : [255 0 0] is a list.
Run Code Online (Sandbox Code Playgroud)

如何创建一个颜色酿造者或获得rgb颜色类型的平均值?

Bry*_*ead 0

正如赛斯在评论中指出的那样,取两种颜色的平均值的确切含义很复杂。也就是说,对每个 RGB 分量求平均值相对简单。

最暴力的方法是分别计算每个分量的平均值:

let r mean [ item 0 color ] of turtles
let g mean [ item 1 color ] of turtles
let b mean [ item 2 color ] of turtles
let mean-color (list r g b)
Run Code Online (Sandbox Code Playgroud)

我们可以使用以下方法来清理它n-values

let mean-color n-values 3 [ mean [ item ? color ] of turtles ]
Run Code Online (Sandbox Code Playgroud)