Subato

Resource Files

Snowflakes

In dem Modul Analysis sind Sie mit der Koch-Kurve aus Dreiecken, mit der man eine Schneeflocke bilden kann, konfrontiert worden. Es werden dabei an den Seiten eines gleichseitigen Dreiecks zentriert weitere Dreiecke angesetzt, die ein drittel der Kantenlänge haben.
Auch diese Figur lässt sich als Polygon beschreiben. Folgende Abbildung gibt sechs Beispiele für Schneeflocken mit steigender Rekursionstiefe.
Beispielfigur
Schreiben Sie eine Unterklasse SnowFlake der Klasse PolygonObject.
Den Flächeninhalt, der durch die Methode size() berechnet wird, darf für die Figur vernachlässigt werden.
Wenn die Rekursionstiefe der Figur 0 ist, so ist sie ein Dreick.
Wir verzichten darauf, die Figur exakt in das Quadrat der Weite einzufügen, sondern nehmen einen pragmatischen Wert. Im Lösungsformular sind die drei Eckpunkte des Ausgangsdreiecks bereits vorgegeben. Sie müssen lediglich die private rekursive Methode entsprechend ausimplementieren, dass die Punkte ins Polygon eingetragen werden

package name.panitz.oose.ws17; public class SnowFlake extends PolygonObject{ int depth; SnowFlake(int depth, Vertex corner, double width, Vertex velocity) { super(corner, width, width, velocity); this.depth = depth; initPolygon(); } @Override public String toString() { return "new SnowFlake("+depth+",new Vertex"+corner+","+width+",new Vertex"+velocity+")"; } void initPolygon() { int offset = (int)(height/4.5); int y1 = (int)(height)-offset; int h = (int)(y1/2); int oy = 0; drawSnow(depth, offset/2, y1+oy, y1+offset/2, y1+oy); drawSnow(depth, y1+offset/2, y1+oy, h+offset/2, oy); drawSnow(depth, h+offset/2, oy, offset/2, y1+oy); } private void drawSnow(int lev, double x1, double y1, double x5, double y5) { //TODO rekursive Funktion für eine Kante implementieren } }
java
You are not logged in and therefore you cannot submit a solution.