flagflag  
1: 2011-07-30 (Sat) 23:19:33 iseki source Cur: 2011-07-31 (Sun) 14:53:34 iseki source
Line 3: Line 3:
 {  {
   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 Xmin = -2.5;      // X軸(実数部)の最小値の初期値    double Xmin = -2.5;      // X軸(実数部)の最小値の初期値
   double Xmax = 1.0;        // X軸(実数部)の最大値の初期値    double Xmax = 1.0;        // X軸(実数部)の最大値の初期値
Line 12: Line 11:
   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,
Line 22: Line 21:
       return xp;        return xp;
   }    }
 + 
   ////////////////////////////////////////​/    ////////////////////////////////////////​/
   // 以下に処理コードを書く    // 以下に処理コードを書く
   //        入力 vp, 出力 xp    //        入力 vp, 出力 xp
   ////////////////////////////////////////​/    ////////////////////////////////////////​/
-   int       xsize = Xsize; +   int xsize = Xsize; 
-   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;       // = (Ymax-Ymin)/ysize;    // 刻み幅 +   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++) {
Line 43: Line 41:
           Zip = 0.0;            Zip = 0.0;
           k  = 0;            k  = 0;
 + 
           // 漸化式の計算  Z(n+1) = Z(n) + C            // 漸化式の計算  Z(n+1) = Z(n) + C
           do {            do {
Line 52: Line 50:
               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;
 }  }


Front page   New List of Pages Search Recent changes   Help   RSS of recent changes (RSS 1.0) RSS of recent changes (RSS 2.0) RSS of recent changes (RSS Atom)

Site Search

Login

Username:

Password:


Lost Password?
Register now!!

Sub Menu

mini Calendar

Last MonthMay 2024Next Month
Su Mo Tu We Th Fr Sa
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Today

Who's Online

33 user(s) are online (11 user(s) are browsing xpwiki)

Members: 0
Guests: 33

more...

Access Counter

Today : 613613613
Yesterday : 5790579057905790
Total : 2365340923653409236534092365340923653409236534092365340923653409
Powered by XOOPS Cube 2.1© 2001-2006 XOOPS Cube Project
Design by XoopsDesign.com