// マンデルブロ集合 [Mandel.java] import java.applet.Applet; import java.awt.*; import java.awt.event.*; // JDK 1.1 public class Mandel extends Applet implements MouseListener,ActionListener { // JDK 1.1 int Dx,Dy,Ux,Uy; // マウスの位置 double rs,re,is,ie; Button button_rw,button_rst; // ボタン Color [] C={Color.red,Color.pink,Color.magenta, Color.blue,Color.cyan,Color.green, Color.yellow,Color.gray}; int colorLen=C.length; // 色の数 int n=100; // 最大繰り返し回数 public void init() { // ロード時の初期化メソッド button_rw = new Button("RE-Write"); // RE-Writeボタン button_rst= new Button("RESET"); // RESETボタン add(button_rw); // RE-Writeボタン add(button_rst); // RESETボタン rs=-2.0; re=0.5; //(a) 実部の始点,終点(初期値) is=-1.2; ie=1.2; //(a) 虚部の始点,終点(初期値) addMouseListener(this); // JDK 1.1 button_rw.addActionListener(this); // JDK 1.1 button_rst.addActionListener(this); // JDK 1.1 } // end init //============= JDK 1.1 イベント処理(ボタン) ============= public void actionPerformed(ActionEvent e) { // JDK 1.1 if (e.getSource() == button_rw) { // RE-Writeボタン repaint(); } else if (e.getSource() == button_rst) { //(b) reset rs=-2.0; re=0.5; //(b) 実部の始点,終点(初期値) is=-1.2; ie=1.2; //(b) 虚部の始点,終点(初期値) repaint(); }//end if } //end actionPerformed //============= JDK 1.1 イベント処理(マウス) ============= public void mousePressed(MouseEvent e) { //(c) 押す Dx=e.getX(); //(c)マウスのボタンを押した位置 Dy=e.getY(); //(c)マウスのボタンを押した位置 Ux=0; Uy=0; // マウスのボタンを放した位置 Graphics g=getGraphics(); // Graphicsオブジェクトの代入 g.setColor(Color.white); // 色の設定 g.drawLine(Dx-4,Dy,Dx+4,Dy); //(d) 横線 g.drawLine(Dx,Dy-4,Dx,Dy+4); //(d) 縦線 } //end mousePressed public void mouseReleased(MouseEvent e) { //(e) JDK 1.1 int w; double wR,wI,wwR,wwI; Graphics g=getGraphics(); // Graphicsオブジェクトの代入 int width =getSize().width; // 横の長さ int height=getSize().height-45; // 縦の長さ Ux=e.getX(); Uy=e.getY(); // ボタンを放した位置 if (Ux 実部のループ u=rr*dR+rs; //(i) 複素定数の実部 for (int ii=0; ii 収束ループ zR=r*r-i*i+u; //(k) 実部の計算 zI=2*r*i +v; //(k) 虚部の計算 if (zR*zR + zI*zI > 4.0) { //(l) g.setColor(C[L%colorLen]); // 色の設定 g.drawLine(rr,ii+30,rr,ii+30); break; } //end if r=zR; i=zI; } //end L } //end ii } //end rr } //end paint } //end Mandel