Benutzer-Werkzeuge

Webseiten-Werkzeuge


projektews2013:lagemaro:start:rout

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
projektews2013:lagemaro:start:rout [2014/03/07 19:17]
philippkueckes angelegt
projektews2013:lagemaro:start:rout [2016/01/21 12:45] (aktuell)
Zeile 1: Zeile 1:
-<file C++ Robo_Läuft.ino>+<file C++ Route.ino>
  
 +class Routenplaner {
 +  ArrayList<​colorSpot>​ blaufolge = new ArrayList<​colorSpot>​();​
 +  ArrayList<​colorSpot>​ punktfolge = new ArrayList<​colorSpot>​();​
 +  //die Route wird durch linien zwischen aufeinanderfolgenden Punkten gezeichnet
 +  void zeichneRoute() { 
 +    for (int i=0;​i<​punktfolge.size()-1;​i++) {
 +      stroke(255, 0, 0);
 +      line(punktfolge.get(i).x,​ punktfolge.get(i).y,​ punktfolge.get(i+1).x,​ punktfolge.get(i+1).y);​
 +    }
 +    for (int i=0;​i<​blaufolge.size()-1;​i++) {
 +      stroke(0, 0, 255);
 +      line(blaufolge.get(i).x,​ blaufolge.get(i).y,​ blaufolge.get(i+1).x,​ blaufolge.get(i+1).y);​
 +    }
 +  }
 +  //die Route wird erweitert, falls sie nicht gestoppt ist, und wenn ein Laserpunkt in ausreichendem Abstand zum letzten erkannt wurde
 +  void erweitereRoute() {
 +    if (stop == false) {
 +      if (farbPunktFinder.laserposition.qualitaet== true) {
 +        if (punktfolge.size()<​1) {
 +          punktfolge.add(farbPunktFinder.laserposition);​
 +        }
 +        else {
 +         ​colorSpot letzterPunkt = punktfolge.get(punktfolge.size()-1);​
 +          float distanz = sqrt(sq(letzterPunkt.x-farbPunktFinder.laserposition.x)+sq(letzterPunkt.y-farbPunktFinder.laserposition.y));​
 +          if (distanz > 5) {
 +            punktfolge.add(farbPunktFinder.laserposition);​
 +          }
 +        }
 +      }
 +    }
 +    if (farbPunktFinder.blauposition.qualitaet== true) {
 +        if (blaufolge.size()<​1) {
 +          blaufolge.add(farbPunktFinder.blauposition);​
 +        }
 +        else {
 +          colorSpot letzterPunkt = blaufolge.get(blaufolge.size()-1);​
 +          float distanz = sqrt(sq(letzterPunkt.x-farbPunktFinder.blauposition.x)+sq(letzterPunkt.y-farbPunktFinder.blauposition.y));​
 +          if (distanz > 5) {
 +            blaufolge.add(farbPunktFinder.blauposition);​
 +          }
 +        }
 +      }
 +  }
 +
 +  void loescheRoute (boolean relevant) {
 +    if (relevant){
 +    // die gesamte route wi gelöschtrd
 +    println("​loesche"​);​
 +    while (punktfolge.size ()>0) {
 +      punktfolge.remove(0);​
 +    }
 +    }else{
 +      // die blau aufgezeichnete Linie wird gelöscht
 +      while (blaufolge.size ()>0) {
 +      blaufolge.remove(0);​
 +      }
 +    }
 +  }
 +  //einzelne Punkte werden von der Route gelöscht
 +  void loeschePunkte() {
 +    println("​klicke auf den zu loeschenden Punkt"​);​
 +    for (int i=0;​i<​punktfolge.size();​i++) {
 +      if (sqrt(sq(mouseX-punktfolge.get(i).x)+sq(mouseY-punktfolge.get(i).y))<​8) {
 +
 +        if (i<​zaehler) {
 +          punktfolge.remove(i);​
 +          println("​loesche Punkt"​+i);​
 +          zaehler = zaehler-1;
 +        }
 +        else if (i==zaehler) {
 +          println("​dieser Punkt wird gerade angefahren und kann daher nicht gelöscht werden"​);​
 +          ​
 +        }
 +        else {
 +          punktfolge.remove(i);​
 +          println("​loesche Punkt"​+i);​
 +        }
 +      }
 +    }
 +  }
 +  //Ein Punkt wird an der Stelle hinzugefügt,​ an der die Maus ist.
 +  void fuegePunkteHinzu() {
 +    colorSpot mauspunkt = new colorSpot();​
 +    mauspunkt.x=mouseX;​
 +    mauspunkt.y=mouseY;​
 +    mauspunkt.qualitaet=true;​
 +    punktfolge.add(mauspunkt);​
 +  }
 +}
  
  
 </​file>​ </​file>​
projektews2013/lagemaro/start/rout.1394216251.txt.gz · Zuletzt geändert: 2016/01/21 12:45 (Externe Bearbeitung)