*/
public void normalisiere2() {
Polygon2D normArr = new Polygon2D(this.nPoints());
ArrayList<Double> abstaende = new ArrayList<Double>(this.nPoints());
Iterator<Vektor2D> it = this.iterator();
Vektor2D letztV;
Vektor2D aktV = new Vektor2D(Vektor2D.NULL_VEKTOR);
double aktAbst;
double letztAbst;
Vektor2D aktRicht;
double durchAbst;
int i = 0;
if (this.nPoints() <= 2) {
return;
}
letztV = this.get(0);
letztAbst = 0;
while (it.hasNext()) {
aktV = it.next();
aktAbst = aktV.distanz(letztV) + letztAbst;
abstaende.add(aktAbst);
letztAbst = aktAbst;
letztV = aktV;
}
durchAbst = abstaende.get(abstaende.size() - 1)
/ (abstaende.size() - 1);
aktV = new Vektor2D(this.get(0));
normArr.add(aktV);
aktAbst = 0;
while (i < this.nPoints()) {
if (i + 1 < this.nPoints()) {
aktRicht = new Vektor2D(this.get(i + 1));
aktRicht.sub(this.get(i));
if (this.get(i).distanz(this.get(i + 1)) >= durchAbst) {
aktRicht.laengeFestlegen(durchAbst);
while (aktAbst < abstaende.get(i + 1)) {
aktV = new Vektor2D(aktV);
aktV.add(aktRicht);
normArr.add(aktV);
aktAbst += durchAbst;
}
} else {
double zwischAbst = 0;
double aktDist;
while (i + 1 < nPoints()) {
aktDist = this.get(i).distanz(this.get(i + 1));
if (zwischAbst + aktDist
< durchAbst) {
zwischAbst += aktDist;
i++;
} else {
aktRicht = new Vektor2D(this.get(i + 1));
aktRicht.sub(this.get(i));
aktRicht.laengeFestlegen(durchAbst - zwischAbst);
aktV = new Vektor2D(this.get(i));
aktV.add(aktRicht);
normArr.add(aktV);
aktAbst += durchAbst;
break;
}