//=============================================C // マンデルブロ集合の描画入門    C // 表示ボタンをクリックすると描画 C // 次数nは2,3,4,5,6,7,8から選択    C // 2009年5月7日 後 保範(東京工芸大学) C //=============================================C import java.applet.*; import java.awt.*; import java.awt.event.*; public class mandel0 extends Applet { Color col[] = { Color.red, Color.pink, Color.yellow, Color.blue, Color.green, Color.cyan, Color.magenta, Color.orange, Color.gray }; int n, leng = col.length; Button btn; //ボタンの設定. Choice n_v; //係数nのアイテム設定 // 初期値の設定 public void init() { Label La1=new Label("n="); n_v = new Choice(); //次数nの選択 btn = new Button("表示"); //表示ボタン for (int i=0; i<=6; i++) //nの選定リスト { n_v.addItem(""+(i+2)); } add(La1); add(n_v); //パネルへnを追加 add(btn); //パネルへボタン追加 btn.addActionListener(new ActionAdp()); //ボタン処理 n_v.addItemListener(new ItemAdp()); //アイテム追加 n_v.select(0); n = 2; //n=2(0番目)で表示 } // ボタンクリックの実装クラス class ActionAdp implements ActionListener { public void actionPerformed(ActionEvent e) { if (e.getSource() == btn) //「表示」クリック { repaint(); } //再描画 } } // アイテム(nの選定)の実装クラス class ItemAdp implements ItemListener { public void itemStateChanged(ItemEvent e) { Object source = e.getSource(); if (source == n_v) //nの選定 { n = n_v.getSelectedIndex() + 2; } } } public void paint(Graphics g) { int xs = 500, ys = 500; //描画領域 double sl = 0.7; //倍率 double X[] = new double[2]; double Z[] = new double[2]; g.setColor(Color.black); //黒で埋める g.fillRect(0, 0, xs, ys); for (int y=0; y 10.0) { g.setColor(col[k%leng]); //色の設定 g.drawLine(x, y, x, y); //点を描く break; } } } } } //複素数のn乗計算 public void CXN(int n, double x[],double z[]) { double W0, W1; W0 = x[0]; W1 = x[1]; for (int k=1; k