Farbe ändern, wenn der Kreis das Dreieck berührt bei Processing?

1 Antwort

Du kannst eine Maske dafür verwenden.

Zeichne im ersten Schritt den roten Hintergrund und deinen Kreis. Im zweiten Schritt legst du dir eine PGraphics-Instanz an, die du mit der Baumfarbe füllst. Sie kann die Form eines Rechtecks haben in dem der grünbewachsene Teil des Baum mindestens einmal hineinpasst und muss dementsprechend auch so positioniert werden. Auf diese Fläche kannst du anschließend deinen Kreis in der Beleuchtungsfarbe zeichnen.

PGraphics sourceImage;

void draw() {
  /* ... */

  sourceImage = createGraphics(400, 400);
  sourceImage.beginDraw();
  /* draw background and light circle ... */
  sourceImage.endDraw();

  /* ... */
}

Zum Schluss folgt die Maske. Du brauchst eine zweite PGraphics-Instanz, die die Form der Baumkrone repräsentiert. Mit der mask-Funktion erzeugst du die Maske und mit image zeichnest du das maskierte Bild.

sourceImage.mask(maskImage);
image(sourceImage, 0, 0);

Wenn du das noch für deinen Baumstamm machen möchtest, kannst du genauso vorgehen.