3152 Inkreis Inkreismittelpunkt
Kategorie:Grafik
Klasse:leicht
Eingabe:siehe Spezifikation
Ausgabe:siehe Spezifikation
Abzugebende Files: Inkreis.txt, Inkreis.java, *.java , 613.txt, 770.txt

Kurzbeschreibung:

Die Eckpunkte eines Dreiecks werden eingelesen; der Inkreismittelpunkt sowie der Radius des Inkreises werden ermittelt.

Allgemeine Hinweise:

Aufgabenstellung:

Lesen Sie zuerst die Eckpunkte des Dreiecks ein, die aus jeweils zwei Float- Zahlen bestehen. Bilden Sie dann die Winkelsymmetralen des Dreiecks, mit deren Hilfe Sie Geraden, die durch den jeweiligen Eckpunkt gehen, bilden können.
       g: X=(p1,p2) + t*(e1,e2),
wobei (p1,p2) Eckpunkt und (e1,e2) Winkelsymmetrale ist
Wenn Sie diese Geraden schneiden, erhalten Sie als Ergebniss den Inkreismittelpunkt. Um den Inkreisradius zu erhalten, schneiden Sie eine beliebige Seite des Dreiecks mit einer Normalen, die durch den Inkreismittelpunkt geht. ( Normalform des Vektors (e1,e2): (-e2,e1) )

Eingabedaten:

Lesen Sie die Koordinaten xa, ya, xb, yb, xc, yc der Eckpunkte des Dreiecks in dieser Reihenfolge als Zahlen vom Typ Float ein. Diese Koordinaten müssen ein Dreieck bilden.

Ausgabedaten:

Bei korrekten Eingabedaten soll Ihr Programm die Koordinaten des Inkreismittelpunktes in der Reihenfolge x y als Float-Zahlen mit 3 Nochkammstellen ausgeben. Weiters soll der Radius des Inkreises (ebenfalls als Float-Zahl mit 3 Nachkommastellen) ausgegeben werden.

Trennen Sie die drei Zahlen durch ein Leerzeichen und geben Sie am Ende einen Zeilenvorschub aus.

Fehlerbehandlung:

Sämtliche Eingabedatensätze sind immer vollständig einzulesen. Generell wird bei fehlerhaften Eingabedatensätzen nur eine einzige Fehlermeldung erzeugt, weitere Berechnungen werden nicht mehr durchgeführt.

Enthält der Eingabedatensatz einen ungültigen Datentyp, so soll einmal das Zeichen "?", gefolgt von einem Zeilenvorschub, ausgegeben werden.

Waren die Datentypen bei allen Eingaben dann richtig, die eingegebenen Daten aber inhaltlich nicht korrekt, so soll Ihr Programm "FALSCHE EINGABE", gefolgt von einem Zeilenvorschub, ausgeben.

Beispiele:

Eingabedaten
1 1 5 1 1 5

8 -2 0 -2 0 -10

Ausgabedaten
2.172 2.172 1.172

2.343 -4.343 2.343


Testen:

Diese Beispiele dienen nur zur Verdeutlichung der Spezifikation und müssen nicht korrekt formatiert sein. Die korrekte Formatierung entnehmen Sie bitte dem mitgelieferten Outputfile. Zum Testen Ihrer Lösung können Sie aus den mitgelieferten Eingabedaten wie folgt eine Ausgabedatei erzeugen:

java Inkreis < Inkreis.i1 > Inkreis.out1

Das erzeugte File Inkreis.out1 können Sie dann mit dem mitgelieferten Outputfile Inkreis.o1 vergleichen.