Hallo Leute, wie kann ich in Java einen Kreis zeichnen lassen, der sich im JFrame erst aufbaut, also dass ich es mir angucken kann wie der Kreis gezeichnet w?

2 Antworten

Du benötigst eine Verzögerung beim Zeichnen. Die erreichst du mittels eines Timers. Wenn du punktweise zeichnen lässt, dürfte es die flüssigste Animation ergeben.

pueshuan 
Fragesteller
 12.11.2016, 13:12

ich habe es mit einem timer probiert. ich habe eine variable die ich "winkel" genannt habe immer um 10 vergrößert und dann das gemacht: 

g.drawArc(Var.x, Var.y, 50, 50, 0, Var.winkel);

aber das klappt irgendwie nicht :(

0
regex9  12.11.2016, 14:48
@pueshuan

Berechne jeden Punkt des Kreises, wobei r der Kreisradius ist, a der Winkel in Bogenmaß und der Mittelpunkt des Kreises K bei (c/d) liegt.

x = r * cos(a) + c;
y = r * sin(a) + d;


Mit der drawOval-Methde kannst du Punkt für Punkt zeichnen.

Als Timer bieten sich folgende Optionen an:

0

Das zu machen ist einfach, das RICHTIG zu machen ist sehr schwer.

Einfache Methode: Den Kreis Punkt für Punkt zeichnen und dabei nahc jedme Punkt eine Verzögerung erzeugen. Das dafür nötige findest du in der Klasse java.lang.Thread.

Problem dabei ist, dass das Programm wen die Schleife in paint() ist absurd schlechte Performance haben wird und der Kreis beim Verdecken des Fensters komplett gelöscht wird.

RICHTIGE Methode:

Ein Offscreen-Image erstellen, dieses in einem Thread nahc und nach mit einem Kreis füllen und nach jedem Punkt das GUI zum neu zeichnen zwingen.