Aus Rauten einen Kreis?

Eine runde Sache

Der Stararchitekt des Wichteldorfs, Friedensreich Tausendsassa, soll für den großen Ballsaal ein neues Fenster entwerfen. Er mag runde Formen besonders, aber die sind teurer in der Herstellung. Deshalb kommt ihm eine Idee.

Friedensreich entwirft ein Fenster, das aus vielen verschieden bunten Glasscheiben besteht. Alle Glasscheiben sind Rauten. Die Rauten haben alle die gleiche Seitenlänge, aber verschiedene Formen durch die Winkel in den Ecken. Er fügt sie zu einem Muster zusammen, das 32 Symmetrieachsen durch den Mittelpunkt aufweist (siehe Bild). Die äußeren Rauten sind so flach, dass das Fenster fast rund wirkt. Die 16 inneren Rauten (hellgelb) haben alle die gleiche Form – die Winkel in den Ecken, die zum Mittelpunkt zeigen, sind alle gleich groß.

Friedensreichs Idee ist einfach: „Die Rauten kann ich mithilfe von Formvorlagen herstellen. Damit spare ich viel Zeit und Geld.“ Ein weiterer Vorteil seines Entwurfs ist, dass viele Rauten die gleiche Form haben. Es reichen deshalb wenige Formvorlagen für das ganze Fenster aus.

Wie viele verschiedene Rautenformen kommen in dem Fenster vor?

[Hinweis: Zwei Rautenformen sind gleich, wenn die Seiten gleich lang sind und wenn ein Winkel in beiden Rauten gleich groß ist (die anderen Winkel ergeben sich entsprechend). Es sind auch dann zwei Rautenformen gleich, wenn die Diagonalen paarweise gleich lang sind. Die Farbe muss nicht gleich sein. Die Summe der vier Innenwinkel ist 360°.]

Wenn du das Rauten-Fenster als Vorlage ausdrucken möchtest, lade dir die Aufgabe als pdf herunter (ganz oben auf dieser Seite).

Bild zum Beitrag
Schule, Mathematik, Kreis, Geometrie, Raute
Raute rekursiv programmieren?

Hallo ich habe hier ein Problem bei der Programmierung. Hier ist meine Aufgabenstellung:

Schreiben Sie eine Anwendung Raute.java, welche ein Raute ausgibt. Der Nutzer soll zuvor die Größe n der Raute eingeben können. Bei geraden Eingaben (n gerade) soll der Text: „Das Programm arbeitet nur mit ungeraden Werten.“ ausgegeben werden. Bei ungeraden Eingaben (n ungerade) soll eine Raute der Höhe n ausgegeben werden.

Das ist mein Quellcode (allerdings kommt nicht ganz das raus was ich brauche^^):

/* 
 * Erzeugen einer Raute-rekursiv
 */
 
import java.util.Scanner; 

public class Raute {
  
  public static void main(String[] args) {
    Scanner scan = new Scanner(System.in);
 
    // Eingabe
    System.out.println("Geben Sie die Größe Ihrer Raute ein(nur ungerade Werte):");
    int groesse = scan.nextInt();

    // Bedingung --> gerade Werte werden nicht
    // vom Programm bearbeitet (+ Ausgabe)
    if (groesse % 2 == 0) {
       System.err.println("Das Programm arbeitet nur mit ungeraden Werten!");
    }
    else {
       // Berechnung:
       resultat(groesse);
    }
  }

  public static String methode1(int groesse) {

    if (groesse > 0) {
       return "* " + methode1(groesse - 1);
    }
    else {
       return " ";
    }
  }

  public static String methode2(int groesse) {

    if (groesse > 0) {
      return "* " + methode1(groesse - 1);
    }
    else {
      return " ";
    }
  }

  public static String space(int groesse) {

    if (groesse > 0) {
      return " " + space(groesse - 1);
    } 
    else {
      return " ";
    }
  }

  public static void resultat(int groesse) {
    
    for (int i = 1; i < groesse; i++) {
      System.out.println(space(groesse - i));
      System.out.println(methode1(i));
    }

    for (int i = 0; i < groesse; i++) {
      System.out.println(methode2(groesse - i));
      System.out.println(space(i));
    }
  }
}

Z.B.: groesse = 5

Ausgabe:

*   

  

* *   

  

* * *   

* * * *  

 

* * *  

 

* *

  

*
Computer, programmieren, Java, Raute, Rekursiv