我正在尝试做一个理论上简单的效果。例如,我有两个在窗口周围弹跳的白色圆圈。当它们相交时,我希望相交的圆圈部分为黑色,而其余圆圈保持白色,如下所示:
有没有办法做到这一点?
到目前为止,我有这个:
for(int i = 0; i < balls.length; i++)
{
balls[i].move();
for(int j = 0; j < balls.length; j++)
{
if(i != j && balls[i].intersect(balls[j]) && !changed[i] && !changed[j])
{
balls[j].swapColor();
changed[j] = true;
}
else
changed[j] = false;
}
balls[i].display();
}
但是当它们相交时它会将圆圈完全变为黑色,而我只希望交叉点本身发生变化。
编辑:我尝试将 blend() 与两个 200x200 png、洋红色和红色一起使用,以更好地查看混合工作。但是, blend() 参数似乎无助于正确定位圆圈。
void setup() {
size(300, 300);
background(255);
}
void draw() {
PImage img = loadImage("circle.png");
PImage img2 = loadImage("circle2.png");
img.blend(img2,0,0,200,200,10,10,200,200,DIFFERENCE);
image(img,0,0);
image(img2,50,50);
}
给了我这个: