12: Schleifen 5 – Verschachtelte Dreiecke

 

Zeichnen sie n Dreiecke, wobei das erste vorgegeben wird und die n-1 weiteren jeweils die Mittelpunkte der Verbindungslinien als Eckpunkte haben:

Lösung

Zur Lösung dieser Aufgabe wird die Datei unibwm.jar benötigt. Sie kann in der Eclipse Umgebung in den Projektoptionen unter “add external jar” hinzugefügt werden.

import java.util.Scanner; 	// Scanner für die Eingabe von Werten
import unibwm.*;			// Grafik für die Ausgabe der Dreiecke

public class Aufgabe12
{
	public static void main(String[] args)
	{
		// Variablen Deklaration
		int n;
		double x1, x2, x3, y1, y2, y3, temp;
		Grafik gfkZeichnung = new Grafik();
		Scanner scnEingabe = new Scanner(System.in);

		// Variablen Initialisierung
		System.out.print("Punkt 1 x: ");
		x1 = scnEingabe.nextDouble();
		System.out.print("Punkt 1 y: ");
		y1 = scnEingabe.nextDouble();
		System.out.print("Punkt 2 x: ");
		x2 = scnEingabe.nextDouble();
		System.out.print("Punkt 2 y: ");
		y2 = scnEingabe.nextDouble();
		System.out.print("Punkt 3 x: ");
		x3 = scnEingabe.nextDouble();
		System.out.print("Punkt 3 y: ");
		y3 = scnEingabe.nextDouble();

		System.out.print("Bitte n eingeben: ");
		n = scnEingabe.nextInt();

		for (int i = 0; i < n; ++ i)
		{ // Schleife zeichnet n Dreiecke ineinander
			gfkZeichnung.addLine(x1, y1, x2, y2);
			gfkZeichnung.addLine(x1, y1, x3, y3);
			gfkZeichnung.addLine(x3, y3, x2, y2);

			temp = x1;
			x1 = (x1+x2) / 2.;
			x2 = (x2+x3) / 2.;
			x3 = (x3+temp) / 2.;

			temp = y1;
			y1 = (y1+y2) / 2.;
			y2 = (y2+y3) / 2.;
			y3 = (y3+temp) / 2.;
		} // end for

		gfkZeichnung.show("Ausgabe zu Aufgabe 12");
	} // end main
} // end class