Processing 处理-通过鼠标移动混合填充颜色

Processing 处理-通过鼠标移动混合填充颜色,processing,gradient,interactive,blending,Processing,Gradient,Interactive,Blending,前几天我看了这段视频,我试图复制它是如何完成的 这很直截了当,但我一直坚持的是如何使绘制的形状更加模糊,并在它们之间有一个平滑的渐变,如参考: 有人知道如何混合圆形的颜色,使它们看起来更像渐变色吗 PImage img; int value = 0; int size = 50; void setup() { size(640, 800); frameRate(60); img = loadImage("blue.jpg"); img.resize(width, heigh

前几天我看了这段视频,我试图复制它是如何完成的

这很直截了当,但我一直坚持的是如何使绘制的形状更加模糊,并在它们之间有一个平滑的渐变,如参考:

有人知道如何混合圆形的颜色,使它们看起来更像渐变色吗

PImage img;
int value = 0;
int size = 50;

void setup() {
  size(640, 800);
  frameRate(60);
  img = loadImage("blue.jpg");
  img.resize(width, height);
  background(img);
}

void draw() {
  //get the color at the mouse position
  color c = img.get(mouseX, mouseY);

  //change the fill to that color
  fill(c);
  noStroke();

  //draw a circle with that color when mouse pressed
  if(mousePressed) circle(mouseX, mouseY, size);;
}

正如@laancelot指出的,我需要得到平均颜色!谢谢

color getAverageColor(PImage img){
img.loadPixels();
int r=0,g=0,b=0;
对于(int i=0;i>16&0xFF;
g+=c>>8&0xFF;
b+=c&0xFF;
}
r/=img.pixels.length;
g/=img.pixels.length;
b/=img.pixels.length;
返回颜色(r、g、b);

首先,在这个例子中,使用的颜色可能是原始图片中圆圈中所有颜色的平均值。所以你必须参考原始图片才能得到颜色。第二:你必须使用数学,这样你就知道哪些像素在“圆”中。然后计算出平均颜色。你的下一步应该是编写伪代码来完成所有这些事情,然后尝试一下(如果你被卡住了,请回来)。谢谢@laancelot,我需要得到平均颜色,这就是诀窍!
color getAverageColor(PImage img){img.loadPixels();int r=0,g=0,b=0;for(int i=0;i>16&0xFF;g+=c>>8&0xFF;b+=c&0xFF;}r/=img.pixels.length;g/=img.pixels.length;b/=img.pixels.length;返回颜色(r,g,b);}