2: 2011-07-30 (土) 23:21:19 iseki  |
現: 2011-07-31 (日) 14:53:34 iseki  |
| | { | | { |
| | MSGraph<sWord>* xp = NULL; | | MSGraph<sWord>* xp = NULL; |
| | + | |
| | int Xsize = 600; // スクリーンのXサイズ | | int Xsize = 600; // スクリーンのXサイズ |
| | double Infnty = 1.0e8; // 無限大 | | double Infnty = 1.0e8; // 無限大 |
| | double Ymax = 1.5; // Y軸(虚数部)の最大値の初期値 | | double Ymax = 1.5; // Y軸(虚数部)の最大値の初期値 |
| | double val = 200; // 最大繰り返し回数の初期値 | | double val = 200; // 最大繰り返し回数の初期値 |
| | + | |
| | // 数値入力用ダイアログ | | // 数値入力用ダイアログ |
| | BOOL isok = InputMultiNumDLG("X軸の最小値", &Xmin, "X軸の最大値", &Xmax, | | BOOL isok = InputMultiNumDLG("X軸の最小値", &Xmin, "X軸の最大値", &Xmax, |
| | return xp; | | return xp; |
| | } | | } |
| | + | |
| | ///////////////////////////////////////// | | ///////////////////////////////////////// |
| | // 以下に処理コードを書く | | // 以下に処理コードを書く |
| | int ysize = (int)(xsize*(Ymax-Ymin)/(Xmax-Xmin) + 0.5); | | int ysize = (int)(xsize*(Ymax-Ymin)/(Xmax-Xmin) + 0.5); |
| | double dC = (Xmax-Xmin)/xsize; // 刻み幅 | | double dC = (Xmax-Xmin)/xsize; // 刻み幅 |
| | + | |
| | xp = new MSGraph<sWord>(xsize, ysize); // (xsize × ysize) の画用紙を用意 | | xp = new MSGraph<sWord>(xsize, ysize); // (xsize × ysize) の画用紙を用意 |
| | int i, j, k; | | int i, j, k; |
| | double Cr, Ci, Zr, Zi, Zrp, Zip; | | double Cr, Ci, Zr, Zi, Zrp, Zip; |
| | + | |
| | Ci = Ymax; | | Ci = Ymax; |
| | for (j=0; j<xp->ys; j++) { | | for (j=0; j<xp->ys; j++) { |
| | Zip = 0.0; | | Zip = 0.0; |
| | k = 0; | | k = 0; |
| | + | |
| | // 漸化式の計算 Z(n+1) = Z(n) + C | | // 漸化式の計算 Z(n+1) = Z(n) + C |
| | do { | | do { |
| | k++; | | k++; |
| | } while (Zr<Infnty && Zi<Infnty && k<=(int)val); // 発散のチェック | | } while (Zr<Infnty && Zi<Infnty && k<=(int)val); // 発散のチェック |
| - | | + | |
| - | xp->point(i, j) = (sWord)((double)(val-k+1)*4095/val); // 色を作って点を打つ( k==1:白, k==val+1:黒) | + | xp->point(i, j) = (sWord)((double)(val-k+1)*4095/val); // 色を作って点を打つ (k==1:白, k==val+1:黒) |
| | Cr += dC; | | Cr += dC; |
| | } | | } |
| | Ci -= dC; | | Ci -= dC; |
| | } | | } |
| | + | |
| | xp->color = GRAPH_COLOR_ARGB16; // カラーモード | | xp->color = GRAPH_COLOR_ARGB16; // カラーモード |
| | + | |
| | ///////////////////////////////////////// | | ///////////////////////////////////////// |
| | // 処理コードはここまで | | // 処理コードはここまで |
| | ///////////////////////////////////////// | | ///////////////////////////////////////// |
| | + | |
| | return xp; | | return xp; |
| | } | | } |