Java: zeichnen Sie eine rechteckige Spirale mit drawLine
Arbeite ich an einem Java-Programmierung, wo soll ich zeichnen Sie eine rechteckige Spirale mit der drawLine-Methode. Hier ist, was ich habe, so weit, aber die Spirale geht nach oben auf der Suche unvollständig.
import java.awt.Graphics;
import javax.swing.JPanel;
import javax.swing.JFrame;
public class RectSpiral extends JPanel
{
public void paintComponent(Graphics g)
{
int width = getSize().width;
int height = getSize().height;
int widthCenter = width / 2;
int heightCenter = height / 2;
for (int i = 0; i < 4 ; i++)
{
g.drawLine(widthCenter + (20 * i), heightCenter + (20 * i), widthCenter + (20 * i), heightCenter + 20 + (20 * i));
g.drawLine(widthCenter + (20 * i), heightCenter + 20 + (20 * i), widthCenter - 20 - (20 * i), heightCenter + 20 + (20 * i));
g.drawLine(widthCenter - 20 - (20 * i), heightCenter + 20 + (20 * i), widthCenter - 20 - (20 * i), heightCenter - 20 - (20 * i));
g.drawLine(widthCenter - 20 - (20 * i), heightCenter - 20 - (20 * i), widthCenter + 20 + (20 * i), heightCenter - 20 - (20 * i));
}
}
public static void main(String[] args)
{
RectSpiral panel = new RectSpiral();
JFrame application = new JFrame();
application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
application.add(panel);
application.setSize(300, 300);
application.setVisible(true);
}
}
Dies ist die Ausgabe:
Ich habe versucht, das hinzufügen einer fünften Zeile innerhalb der for-Schleife, aber das Ergebnis kommt immer noch bis unvollständig.
Jede Hilfe ist willkommen, danke!
Du musst angemeldet sein, um einen Kommentar abzugeben.
In Ihrem ersten
g.drawLine
müssen Sie subtrahieren(20 * i)
von der Mitte desy
, nicht zu startenaber hier:
so verwenden
Probieren Sie diese Lösung: