// マンデルブロ集合 [Mandel.java](JDK 1.0.2) 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 public class Mandel extends Applet { //! 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