07: Einfache Grafiken 4 – Haus mit Schornstein

 

Zeichnen Sie ein Haus mit Schornstein. Achten Sie darauf, dass der Schornstein keinen der folgenden Fehler aufweist:

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 des Hauses

public class Aufgabe7
{
	public static void main(String[] args)
	{
		// Variablen Deklaration
		double dBreite, dHoehe, dSchornsteinHoehe;
		Scanner scnEingabe = new Scanner(System.in);
		Grafik gfkZeichnung = new Grafik();

		// Variablen Initialisierung
				System.out.print("Breite des Hauses: ");
		dBreite = scnEingabe.nextDouble();
		System.out.print("Höhe des Hauses: ");
		dHoehe = scnEingabe.nextDouble();
		System.out.print("Höhe des Schornsteins: ");
		dSchornsteinHoehe = scnEingabe.nextDouble();

		//Haus zeichnen
		gfkZeichnung.addLine(0., 0., dBreite, 0.);
		gfkZeichnung.addLine(0., 0., 0., dHoehe);
		gfkZeichnung.addLine(0., dHoehe, dBreite, dHoehe);
		gfkZeichnung.addLine(dBreite, 0., dBreite, dHoehe);

		//Dach
		gfkZeichnung.addLine(0., dHoehe, dBreite/2., 2*dHoehe);
		gfkZeichnung.addLine(dBreite, dHoehe, dBreite/2., 2*dHoehe);

		//dSchornsteinHoehe im 3.-Punkt (b=1m)
		double dSteigung = 2. * dHoehe / dBreite;
		double x1 = dBreite / 3.-dBreite / 16.;
		double x2 = dBreite / 3.+dBreite / 16.;
		double y1 = dHoehe+dSteigung * x1;
		double y2 = dHoehe+dSteigung * x2; 

		System.out.println("x1: "+x1+"   x2: "+x2);
		System.out.println("y1: "+y1+"   y2: "+y2);
		System.out.println
			("Steigung: "+dHoehe+" / "+dBreite+" = "+dSteigung);

		gfkZeichnung.addLine(x1, y1, x1, y2+dSchornsteinHoehe);
		gfkZeichnung.addLine(x2, y2, x2, y2+dSchornsteinHoehe);
		gfkZeichnung.addLine
			(x1, y2+dSchornsteinHoehe, x2, y2+dSchornsteinHoehe);

		//Zeichnung anzeigen
		gfkZeichnung.show("Ausgabe zur Aufgabe 7");
	} // end main
} // end class