// Mandelbrot集合 /* */ import java.awt.*; import java.util.*; import java.awt.event.*; import javax.swing.*; public class Ex060924a extends JApplet implements ActionListener{ dPan2 pl; JButton bt; boolean flag=false; public void init(){ Container cp =getContentPane(); pl = new dPan2(); cp.setLayout(null); cp.setBackground(Color.black); pl.setBounds(0,30,300,200); bt = new JButton("計 算"); bt.setBounds(0,0,80,20); cp.add(bt); bt.addActionListener(this); cp.add(pl); } public void actionPerformed(ActionEvent event){ flag=true; pl.init(); } class dPan2 extends JPanel{ double x; // 実部 double y; // 虚部 public void init(){ Graphics g = getGraphics(); paintComponent(g); } public void paintComponent(Graphics g){ super.paintComponent(g); double re,reb; double im,imb; g.setColor(Color.black); g.fillRect(0,0,500,500); if(flag==true){ g.setColor(Color.green); for(x=-2.0;x<=0.5;x=x+0.01){ for(y=-1.2;y<=1.2;y=y+0.01){ re=0.0; im=0.0; for(int i=0;i<100;i++){ reb=re; imb=im; re=reb*reb-imb*imb+x; im=2*reb*imb+y; } if(Math.sqrt(re*re+im*im)<2.0) g.drawLine((int)(x*100)+200,100-(int)(y*100),(int)(x*100)+200,100-(int)(y*100)); } } } } } }