import java.awt.Graphics; public class c11_feigenbaum extends java.applet.Applet { static final int left = 20; static final int h = 300; static final int w = 3*h/2; static final int dx = 2; static final int iter = 200; static final int hide = 100; static final double astart = 1; static final double aend = 4; static final double xbottom = 0; static final double xtop = 1; static final double dw = w/(aend-astart); static final double dh = h/(xtop-xbottom); public void paint(Graphics g) { LineTo lt = new LineTo(g); lt.drawLine(left, left, left, left+h); lt.drawLine(left, left+h, left+w, left+h); int d = (int)(Math.log(aend-astart)/Math.log(10)); double td = Math.pow(10, d) / 10; if ((aend-astart)/td > 50) { td = 5*td; } else if ((aend-astart)/td > 25) { td = 2.5*td; } int ts = (int)(td*((int)(astart/td)+1)); for (int i = 0; i <= (aend-astart)/td-1; i++) { double a = i*td + ts; lt.drawLine((int)(left+dw*(a-astart)), left+h, (int)(left+dw*(a-astart)), left+h-10); } double xn = 0.1; for (int i = 0; i < w/dx; i++) { double a = astart + i*dx / dw; for (int k = 0; k < iter; k++) { xn = a*xn*(1-xn); if (k >= hide && xn <= xtop && xn >= xbottom) { lt.setPixel(left+i*dx, (int)(left+(xtop-xn)*dh)); } } } } }