Bewegung auf Kreisabschnitt in Processing

Hinzugefügt am von Steffen Fiedler

Powered by Processing.js

Um nur einen bestimmten Abschnitt der Kreisbahn abzufahren muss der Wertebereich des Winkels eingeschränkt werden. Der Startwert für angle ist in diesem Sketch mit dem Wert von angleStart angegeben. Wie im vorherigen Beispiel wird der Winkel von Bild zu Bild um einen festen Betrag erhöht. Direkt nach dem erhöhen des Winkels überprüft eine if-Abfrage ob das Limit überschritten wurde. Ist dies der Fall, wird der Winkel wieder auf den Startwert angleStart zurückgesetzt. Der Wertebereich setzt sich demnach wie folgt zusammen:
  • Startwinkel der Betrag der Variable angleStart
  • Endwinkel der abgefrage Winkel in der if-Bedingung

Der Sketch

float xcenter;    // Mittelpunkt auf der x-Achse
float ycenter;    // Mittelpunkt auf der y-Achse
float rad = 65;   // Radius der Kreisbahn
float angle = 0;  // aktueller Rotationswinkel
float angleStart = 0.4; // Startwinkel
 
void setup () {
  size (550, 200);
  smooth ();
  noStroke ();
  background (76);
  
  // Rotationsmittelpunkt
  xcenter = width / 2;
  ycenter = height / 2;
  angle = angleStart;
}
  
void draw () {
  fill (76, 5);
  rect (0, 0, width, height);
  
  // Verschieben des Rotationswinkels
  angle += 0.04;
   
  // Zurücksetzen des Winkels wenn End-
  // winkel von einem PI erreicht ist
  if (angle > PI + angleStart) {
    angle = angleStart;
  }
   
  // Berechnung der aktuellen Position
  float x = xcenter + cos (angle) * rad;
  float y = ycenter + sin (angle) * rad;
   
  // Zeichnen des Kreises
  fill (236);
  ellipse (x, y, 20, 20);
}