Aufgabe 6.6

Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.

Aufgabe 6.6
Hallo,
kann es sein, dass bei der Erstellung von Ellipse2D-Objekten die UNTERE linke Ecke im Konstruktor angegeben wird und nicht die obere linke Ecke, wie es in der Java API steht? :huh:
Denn wenn ich bei der Ellipse

Ellipse2D.Double A = new Ellipse2D.Double(1, 3, 2, 2);

die contains-Methode aufrufe

A.contains(2,2)

so erhalte ich false, obwohl (2,2) ja der Mittelpunkt der Ellipse sein sollte, wenn (1,3) die linke obere Ecke des umgebenden Rechtecks sein soll…Gebe ich allerdings

A.contains(2,4)

ein, so erhalte ich true als Rückgabewert, was ja nicht sein kann, wenn ich (1,3) die OBERE linke Ecke sein soll…
Jetzt frag ich mich grad, ob die Java Api mir was falsches sagt (was ich eher nicht vermute) oder ob ich mathematisch auf dem Schlauch stehe…


Was die obere oder die untere linke Ecke ist, hängt vom Koordinatensystem ab. Der Mittelpunkt der von dir erzeugten Ellipse ist jedenfalls (2, 4) und nicht (2, 2). Du gibst als Höhe 2 an, das heißt, die umgebende Box geht von y = 3 bis y = 3 + 2 = 5. Aber egal, wie man das Koordinatensystem dreht: Die Höhe wird addiert und nicht subtrahiert.


Oke, gut zu wissen (auch wenn ich die Formulierung vom API etwas unintuitiv finde). Danke auf jeden Fall für die Auskunft!


Ich leihe mir den Thread hier mal eben aus :wink:

Bei mir schlägt Test #2 && Test #3 fehl.

Der Grund:

1) testIntersection2(MonteCarloTest)
java.lang.AssertionError: expected:<0.785246> but was:<0.8181818181818182>

2) testIntersection3(MonteCarloTest)
java.lang.AssertionError: expected:<0.9645439> but was:<1.0>

Wenn ich das jetzt mit meinen Debug-Ausgaben vergleiche:

Data of the square - x: 2.0 y: 2.0 height: 3.0 width: 3.0
The square area is: 9.0 - the sum is: 9370896 itt/sum: 11

Data of the square - x: 2.0 y: 1.0 height: 2.0 width: 5.0
The square area is: 10.0 - the sum is: 10342169 itt/sum: 10

Ich stecke quasi genau in der Mitte drinnen.

0,785 ist ja fast 0,8181 Abweichung von: 0,0329
0,9645 ist ja auch fast 1,0. Abweichung von: 0,0355

3,5 % Abweichung bei einem Zufallsalgorithmus sind schon zu viel? Finde 1 % ist da schon etwas knapp bemessen - oder ich bin unfähig.

Edit:

double = int / int.

Congratz - 1x facepalm bitte.