Warum werden hier nur die grün und orangen Linien ausgegeben und der Rest unten nicht?

Diskutiere Warum werden hier nur die grün und orangen Linien ausgegeben und der Rest unten nicht? im Java Basics - Anfänger-Themen Bereich.
R

Reykja

public class Aufgabe4 {

public static void main(String[] args) {

int width = 400;
int height = 400;
StdDraw.setCanvasSize(width, height);
StdDraw.point(0, 0);
StdDraw.setPenRadius(0.005);

for (int i = width/10; i <= width ; i+= width/10) { //grün & orange Linien
if (i%(width/10*3) == 0) {
StdDraw.setPenColor(StdDraw.GREEN);

} else {
StdDraw.setPenColor(StdDraw.ORANGE);

}
StdDraw.line(0, 0, i, height);
}

StdDraw.setPenColor(StdDraw.BOOK_LIGHT_BLUE); //hellblaue Linien
StdDraw.line(width/2, 0, width/2, height/2);
StdDraw.line(width, 0, width, height/2);

StdDraw.setPenColor(StdDraw.BLUE); //blauer Ellipsenstern
StdDraw.ellipse(width-100, height/4, width/4, height/4);
StdDraw.ellipse(width-100, height/4, width/4, height/10);

int r = 50; //Kreise
StdDraw.setPenColor(StdDraw.RED);
StdDraw.circle(width-r, r, r);
StdDraw.circle(width-r, (height/2)+r, r);

StdDraw.setPenColor(StdDraw.YELLOW); //kleiner gelber Kreis
StdDraw.filledCircle(width/4, height/4, 20);

StdDraw.setPenColor(StdDraw.PINK); //Rechteck
StdDraw.filledRectangle(width/4, height-100, 40, 40);
}
}
 
krgewb

krgewb

Bitte immer in Code-Tags posten.
Java:
public class Aufgabe4 {

    public static void main(String[] args) {

        int width = 400;
        int height = 400;
        StdDraw.setCanvasSize(width, height);
        StdDraw.point(0, 0);
        StdDraw.setPenRadius(0.005);

        for (int i = width / 10; i <= width; i+= width / 10) { //grün & orange Linien
            if (i % (width / 10 * 3) == 0) {
                StdDraw.setPenColor(StdDraw.GREEN);
            } else {
                StdDraw.setPenColor(StdDraw.ORANGE);
            }
            StdDraw.line(0, 0, i, height);
        }

        StdDraw.setPenColor(StdDraw.BOOK_LIGHT_BLUE); //hellblaue Linien
        StdDraw.line(width / 2, 0, width / 2, height / 2);
        StdDraw.line(width, 0, width, height / 2);

        StdDraw.setPenColor(StdDraw.BLUE); //blauer Ellipsenstern
        StdDraw.ellipse(width - 100, height / 4, width / 4, height / 4);
        StdDraw.ellipse(width - 100, height / 4, width / 4, height / 10);

        int r = 50; //Kreise
        StdDraw.setPenColor(StdDraw.RED);
        StdDraw.circle(width - r, r, r);
        StdDraw.circle(width - r, (height / 2) + r, r);

        StdDraw.setPenColor(StdDraw.YELLOW); //kleiner gelber Kreis
        StdDraw.filledCircle(width / 4, height / 4, 20);

        StdDraw.setPenColor(StdDraw.PINK); //Rechteck
        StdDraw.filledRectangle(width / 4, height - 100, 40, 40);
    }
}
 
Zuletzt bearbeitet:
MoxxiManagarm

MoxxiManagarm

Das liegt daran, dass StdDraw nicht mit Pixeln arbeitet, sondern mit Relationen. Du gibst einzig und alleine die Größe des Canvas in Pixeln an. Durch deine zu großen Zahlen werden die Elemente außerhalb des Fensters gezeichnet.

Ich kann dir dazu nur nochmal die Docs ans Herz legen, wo u.a. steht
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.

40px sind einer Größe von 400px 10%, d.h. 0.1

Deine Schleife z.B. muss also so aussehen:
Java:
for (double i = 0.1; i <= 1; i += 0.1) {
Von deinen sichtbaren Linien siehst du auch nur einen winzigen Teil. Dieser Teil sieht nur "zufällig" richtig aus.

PS.: Das Hellblaue sieht eher nach einem nicht gefülltem Rechteck aus, keine 2 Linien...
 
Zuletzt bearbeitet:
R

Reykja

Okay, ich werde nachher noch einmal einen Blick darauf werfen. Danke für deine Hilfe!
 
Thema: 

Warum werden hier nur die grün und orangen Linien ausgegeben und der Rest unten nicht?

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben