/* ***************************************************** * Skala upp (ned) en punkt. Vektorn från p0 till p1 * förlängs enligt en faktor (kan vara <1) och en ny * punkt beräknas. ***************************************************** */ protected Punkt Skala(Punkt p0, Punkt p1, double faktor) { double r, phi; double x0, y0, x1, y1, x2, y2; double dx, dy; x0 = p0.GetX(); y0 = p0.GetY(); x1 = p1.GetX(); y1 = p1.GetY(); dx = x1 - x0; dy = y1 - y0; r = Math.sqrt(dx * dx + dy * dy); phi = Math.atan2(dx, dy); x2 = x0 + faktor * r * Math.sin(phi); y2 = y0 + faktor * r * Math.cos(phi); return new Punkt(x2, y2); }
/* ***************************************************** * Förflytta punkten p med kvantiteten x resp y ***************************************************** */ protected Punkt Translatera(Punkt p, int x, int y) { return new Punkt(p.GetX() + x, p.GetY() + y); }