Mam problem z narysowanie takiego rysunku spirali:
Moj program dziala jedynie dla wspolczynika rownego 2. Wszystkie inne wspolczyniki podzialu boku kwadratu nie tworza spirali.
class Spirala extends JComponent {
//Main:
public static void main(String[] a) {
JFrame window = new JFrame();
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.setBounds(30, 30, 800, 800);
window.getContentPane().add(new Spirala());
window.setVisible(true);
}
public void paint(Graphics g) {
Graphics2D g2d = (Graphics2D) g;
double size = 250;
g2d.translate(size, size);
int n = 20; //ilosc
int wsp = (int) 3; //wspolczynik
int w = 40; //wielkosc
int[] x = new int[]{w,-w,-w,w};
int[] y = new int[]{w,w,-w,-w};
g2d.setColor(Color.GREEN);
g2d.fillPolygon(x, y, 4);
for (int i = 0; i < n; i++) {
g2d.setColor(i % 2 == 0 ? Color.black : Color.green);
int ax = (x[0]+x[1])/wsp;
int ay = (y[0]+y[1])/wsp;
int bx = (x[1]+x[2])/wsp;
int by = (y[1]+y[2])/wsp;
int cx = (x[2]+x[3])/wsp;
int cy = (y[2]+y[3])/wsp;
int dx = (x[0]+x[3])/wsp;
int dy = (y[0]+y[3])/wsp;
//Points
System.out.println("AX " + ax + " " +ay);
System.out.println("BX " + bx + " " +by);
System.out.println("CX " + cx + " " +cy);
System.out.println("DX " + dx + " " +dy);
System.out.println("--------------------");
x[0]=ax;
x[1]=bx;
x[2]=cx;
x[3]=dx;
y[0]=ay;
y[1]=by;
y[2]=cy;
y[3]=dy;
//Rysuj
g2d.fillPolygon(x, y, x.length);
}
}
}