理論的に単純な効果を実行しようとしています。たとえば、窓の周りで跳ねる 2 つの白い円があります。それらが交差するとき、次のように、交差している円の部分を黒くし、残りの円は白のままにしたい:
これを行う方法はありますか?
これまでのところ、私はこれを持っています:
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();
}
しかし、交差すると円が完全に黒くなりますが、交差点自体を変更したいだけです。
編集:ブレンド作業をよりよく見るために、マゼンタと赤の2つの200x200 pngでblend()を使用してみました。ただし、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);
}
私にこれを与える: