Punkt in Rechteck in Processing

Hinzugefügt am von Steffen Fiedler
Es wird überprüft, ob sich die Koordinaten des Punktes in beiden Achsenabschnitten befinden(2D). Dh. auf der x-Achse muss sich die x-Koordinate des Punktes zwischen der linken und rechten Außenseite des Rechtecks befinden. Trifft dies auch für die y-Achse zu, ist der Punkt innerhalb der durch das Rechteck bestimmten Fläche. Im Beispiel sind beide if-Abfragen ineinander verschachtelt. Wenn die Erste (für die x-Achse) nicht zutreffen sollte, brauch die Zweite nicht ausgeführte werden - beide müssen erfüllt sein.

Der Sketch

float x = 180;  // x-Position
float y = 35;  // y-Position
float w = 190;  // Breite
float h = 130;  // Höhe

void setup () {
  size(550, 200);
  noStroke ();
}

void draw () {
  background (76);
  
  /* standardmäßig ist die Maus nicht
   * über dem Rechteck. Es sei denn, 
   * "hit" wird im folgenden Bedingung-
   * block auf true gesetzt.
   */
  boolean hit = false;
  
  /* Wenn sich die Maus auf der x-Achse
   * zwischen Flächenanfang und Ende befindet.
   */
  if (mouseX > x && mouseX < x + w) {
    /* Wenn sich die Maus auf der y-Achse
     * zwischen Flächenanfang und Ende befindet.
     */
    if (mouseY > y && mouseY < y + h) {
      // setze "hit" auf true!
      hit = true;
    }
  }
  
  // Bestimme Füllfarbe am Zustand von "hit"
  if (hit == true) {
    fill (229, 90, 38);
  }else{
    fill (138, 170, 178);
  }
  // Zeichne Rechteck
  rect (x, y, w, h);
}