//================================================C // Newton法による複素多項式(z^n-1=0)の根の計算 C // 収束回数に色を付けて描画(未収束は黒) C // 表示ボタンをクリックすると描画 C // 多項式の次数nは3,4,5,6,7,8,9,10から選択   C // 2009年5月16日 後 保範(東京工芸大学) C //================================================C import java.applet.*; import java.awt.*; import java.awt.event.*; public class newton0 extends Applet { Color col[] = { Color.pink, Color.blue, Color.orange, Color.green, Color.lightGray, Color.red, Color.yellow, Color.cyan, Color.magenta }; 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<=7; i++) //nの選定リスト { n_v.addItem(""+(i+3)); } add(La1); add(n_v); //パネルへnを追加 add(btn); //パネルへボタン追加 btn.addActionListener(new ActionAdp()); //ボタン処理 n_v.addItemListener(new ItemAdp()); //アイテム追加 n_v.select(0); n = 3; //n=3(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() + 3; } } } public void paint(Graphics g) { int xs = 500, ys = 500; //描画領域 double sl = 0.5; //倍率 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