Benutzer-Werkzeuge

Webseiten-Werkzeuge


Seitenleiste

skript:bewegungen

Simulation von Bewegungen

Wir machen eine Zeichnung, die unseren Roboter darstellen soll, und lassen sie bewegen. Unser „Roboter“ sieht so aus:

Programm, welches den Roboter vorwärts bewegen und drehen lässt. Version mit globalen Variablen ohne Klassen:

int radius = 25; // Radius des Roboters
float xPos = 300; // x-Position des Roboters
float yPos = 200; // y-Position des Roboters
float angle = 0; // Richtung des Roboters
 
void setup() {
  size(600, 400);
}
 
void draw() {
  clear();
  drawRobot();
  move(4);
  turn(0.1);
}
 
/*
 * Zeichnet den Roboter
 */
void drawRobot() {
  ellipse(xPos, yPos, radius*2, radius*2); 
  // *2, weil die ellipse-Funktion den Diameter verwendet
  line(xPos, yPos, xPos + radius * cos(angle), yPos + radius * sin(angle));
  // Linie zwischen dem Roboterzentrum und dem Roboterrand in die Bewegungsrichtung
}
 
/*
 * Bewegt den Roboter nach vorne in seine Richtung
 */ 
void move(float distance) {
  xPos = xPos + distance * cos(angle);
  yPos = yPos + distance * sin(angle);
}
 
/*
 * Rotiert den Roboter
 */
void turn(float angleDiff) {
  angle = angle + angleDiff;
}
skript/bewegungen.txt · Zuletzt geändert: 2018/05/09 18:12 von d.golovko