HSG |
|
Spiegeln an der y-Achse bedeutet: (x/y) --> (-x/y). Der Schwerpunkt (sx/sy) wird dabei um 2*sx nach links verschoben. Nach einer Verschiebung um 2*sx nach rechts liegt er wieder richtig. Also insgesamt: x' = -x + 2*sx, y' = y . Achtung: Spiegeln verändert den Umlaufsinn, so dass z.B. die darauf basierende inside-Funktion ohne Korrektur nicht mehr funktioniert. Es ist also notwendig, nach obigen Operationen die Reihenfolge der Polygon-Punkte umzudrehen. |
procedure TTeil.spiegele; var i,n,j : integer; S,H : TPunkt; begin n := Length(FP); S := Schwerpunkt(FP); for i := 0 to n-1 do FP[i].x := -FP[i].x + 2*S.x; // Achtung: ändert Umlaufsinn i := 0; j := n-1; // deshalb Reihenfolge ändern while i |