06: Einfache Grafiken 3 – Mensch und Haus zeichnen

 

Zeichnen Sie die beiden folgenden Figuren (ohne Maßlinien) nach Eingabe der Parameter a, b und c:

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.

Es empfiehlt sich, die Figuren erst auf ein Blatt Papier zu zeichnen, um die absoluten Positionen der Punkte zu ermitteln. Bei den Divisionen ist es wichtig, die Zahlen als x. statt als x zu schreiben, damit sie als reelle Zahlen verarbeitet werden.

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

public class Aufgabe6
{
	public static void main(String[] args)
	{
		// Variablen Deklaration
		double a,b,c;
		Scanner scnEingabe = new Scanner(System.in);
		Grafik g = new Grafik();

		// Variablen Initialisierung
		System.out.println("Übungsaufgabe 6: Formen");
		System.out.println("Bitte Parameter a, b und c eingeben:");

		System.out.print("a = ");
		a = scnEingabe.nextDouble();
		System.out.print("b = ");
		b = scnEingabe.nextDouble();
		System.out.print("c = ");
		c = scnEingabe.nextDouble();

		// Zeichnen des Menschens
		g.addLine(0, 0, a/2., a/2.);
		g.addLine(a, 0, a/2., a/2.);
		g.addLine(a/2., a/2., a/2., a/2.+b);
		g.addLine(a/2., a/2.+b/2., 3.*a/4., 3.*a/4.+b/2.);
		g.addLine(a/2., a/2.+b/2., a/4., 3.*a/4.+b/2.);
		g.addLine(a/4., a/2. +b, 3.*a/4., a/2.+b);
		g.addLine(a/4., a/2.+b, a/4., a/2.+b+c);
		g.addLine(3.*a/4., a/2.+b, 3.*a/4., a/2.+b+c);
		g.addLine(a/4., a/2.+b+c, 3.*a/4., a/2.+b+c);

		// Zeichnen des Hauses
		g.addLine(2.*a, a/2., 3.*a, a/2.);
		g.addLine(2.*a, a/2., 2.*a, a/2.+b);
		g.addLine(2.*a, a/2., 3.*a, a/2.+b);
		g.addLine(3.*a, a/2., 2.*a, a/2.+b);
		g.addLine(3.*a, a/2., 3.*a, a/2.+b);
		g.addLine(2.*a, a/2.+b, 3.*a, a/2.+b);
		g.addLine(2.*a, a/2.+b, 5./2*a, a/2.+b+c);
		g.addLine(3.*a, a/2.+b, 5./2*a, a/2.+b+c);

		g.show("Ausgabe zur Übungsaufgabe 6");
	} // end main
} // end class