Aufgabe3_2.java
Aufgabe3_2.java
—
Java source code,
2 KB (2117 bytes)
Dateiinhalt
import java.awt.Graphics2D; import java.awt.Point; /** * Halbfertige Lösung für Aufgabe 3-2. * */ public class Aufgabe3_2 { public static void main(String[] args) { // Größe des Fenster: int xsize = 500, ysize = 500; // Mittelpunkte der Kreise: int x1 = 225, y1 = 250; int x2 = 275, y2 = 250; // Radien der großen und kleinen Kreise int radiusL = 20; int radiusS = 8; CanvasFrame frame = new CanvasFrame("Aufgabe 3-2", xsize, ysize); Graphics2D canvas = frame.getGraphics(); canvas.clearRect(0, 0, xsize, ysize); canvas.drawOval(x1 - radiusL, y1 - radiusL, 2 * radiusL, 2 * radiusL); canvas.drawOval(x2 - radiusL, y2 - radiusL, 2 * radiusL, 2 * radiusL); canvas.fillOval(x1 - radiusS, y1 - radiusS, 2 * radiusS, 2 * radiusS); canvas.fillOval(x2 - radiusS, y2 - radiusS, 2 * radiusS, 2 * radiusS); frame.repaint(); // "while (true) { ... }" bedeutet, dass die Anweisungen in den // geschweiften Klammern immer wieder wiederholt werden (so lange // bis der Benutzer das Fenster schließt). while (true) { // Warte solange, bis die Maus bewegt wurde. Point mousePosition = frame.waitMouseMoved(); // Lösche den gesamten Fensterinhalt. canvas.clearRect(0, 0, xsize, ysize); // Zeichne die großen Kreise neu. canvas.drawOval(x1 - radiusL, y1 - radiusL, 2 * radiusL, 2 * radiusL); canvas.drawOval(x2 - radiusL, y2 - radiusL, 2 * radiusL, 2 * radiusL); // Zeichne die kleinen gefüllten Kreise neu. // Diese Kreise haben hier immer noch die Mittelpunkte (x1,y1) und // (x2,y2). Eigentlich müssten sie verschoben sein. canvas.fillOval(x1 - radiusS, y1 - radiusS, 2 * radiusS, 2 * radiusS); canvas.fillOval(x2 - radiusS, y2 - radiusS, 2 * radiusS, 2 * radiusS); // Hier werden als Beispiel, wie man auf die Koordinaten der Maus // zugreift, die Linien gezeichnet, entlang derer die Kreise // verschoben werden sollen. canvas.drawLine(x1, y1, mousePosition.x, mousePosition.y); canvas.drawLine(x2, y2, mousePosition.x, mousePosition.y); frame.repaint(); } } }
Artikelaktionen