Was muss ich ändern, damit der Kreis links unten gezeichnet wird?

Reykja

Aktives Mitglied
Java:
/*
    Aufgabe 1) Verschachtelte Schleifen - Optische Täuschung
*/

import java.awt.*;

public class Aufgabe1 {

    public static void main(String[] args) {

        //TODO: Implementieren Sie hier Ihre Lösung für die Angabe

        int width = 840;
        int height = 480;
        StdDraw.setCanvasSize(width, height);
        StdDraw.clear(new Color(240, 240, 240));
        StdDraw.setScale(0, 0);

        int radius = 60;
        int gray = 220;
        for (int i = 60; i <= width ; i+= 60) {
            while (radius >= 10) {
                StdDraw.setPenColor(StdDraw.BLACK);
                StdDraw.circle (i, 60, radius);
                StdDraw.setPenColor(new Color(gray, gray, gray));
                StdDraw.filledCircle(i, 60, radius);
                radius -= 10;
                gray -= 20;
            }
        }
    }
}



im Anhang befindet sich die Angabe (Aufgabe 1)
 

Anhänge

Ich würde die Variable nicht gray nennen. Die Variable repräsentiert den r-Wert, den g-Wert und den b-Wert (rot, grün, blau). Da du bei allen dreien denselben Wert setzt, ist die Farbe immer ein Grauton. Deshalb bist du wahrscheinlich auf den Namen gekommen.
 
Ich würde die Variable nicht gray nennen. Die Variable repräsentiert den r-Wert, den g-Wert und den b-Wert (rot, grün, blau). Da du bei allen dreien denselben Wert setzt, ist die Farbe immer ein Grauton. Deshalb bist du wahrscheinlich auf den Namen gekommen.
Danke, werde ich ausbessern!

StdDraw, ist das eine Library?
eine Klasse (https://introcs.cs.princeton.edu/java/stdlib/javadoc/StdDraw.html)
 
Warum setzt du das auf 0?
Java:
StdDraw.setScale(0, 0);
Probier mal
Java:
StdDraw.setScale(0, 1);
 
Hilfreich ist es die Doku zu lesen, die selber verlinkt hast:

Points and lines. You can draw points and line segments with the following methods:

point(double x, double y)
line(double x1, double y1, double x2, double y2)
The x- and y-coordinates must be in the drawing area (between 0 and 1 and by default) or the points and lines will not be visible.

Entweder du machst das so oder du rufst setScale mit 0,240 als Parameter auf.
 
@LimDul Wie kommt man eigentlich auf die Zahlen?
Breite / Höhe der Zeichenfläche. Laut Doku arbeitet StdDraw mit einem Koordinaten System was standardmäßig von (0/0) bis (1/1) geht. Das heißt, wenn ich bei einer Zeichenfläche von 800x400 bei (400,200) zeichnen will, ist das die Koordinate (0,5/0,5). Wenn ich nicht umrechnen will, muss ich entsprechend das Koordinatensytem anpassen, dass es von (0/0) bis (800/400) geht.
 
habe ich auch schon gemerkt. Hätte jetzt noch eine Frage wenn das okay ist:
1) wie werden die übrigen Kreise darüber gezeichnet, das verstehe ich nicht ganz.
Anhang anzeigen 13301


Vielen Dank übrigens!
Die zeichnest die aktuell alle auf der Höhe 60:

Java:
                StdDraw.circle (i, 60, radius);
Da brauchst du eine zweite Schleife (z.B. mit j), die entsprechend auf die Y-Koordinate durchzählt.
 

Zurück
Oben