Home
News
Forum
Wiki
Blog
Contents
Gallery
Movies
Downloads
About NSL
If you want to see English page, please click "English" Button at Left.
[
タイトル一覧
|
ページ一覧
|
新規
|
単語検索
|
最終更新
|
ヘルプ
]
CTView/Mandel.cpp
をテンプレートにして作成
[
トップ
]
[ ]
開始行:
*** mandel_proc
MANDEL_API MSGraph<sWord>* mandel_proc(MSGraph<sWord>* vp)
{
MSGraph<sWord>* xp = NULL;
int Xsize = 600; // スクリーンのXサイズ
double Infnty = 1.0e8; // 無限大
double Xmin = -2.5; // X軸(実数部)の最小値の...
double Xmax = 1.0; // X軸(実数部)の最大値の...
double Ymin = -1.5; // Y軸(虚数部)の最小値の...
double Ymax = 1.5; // Y軸(虚数部)の最大値の...
double val = 200; // 最大繰り返し回数の初期値
// 数値入力用ダイアログ
BOOL isok = InputMultiNumDLG("X軸の最小値", &Xmin, "X...
"Y軸の最小値", &Ymin, "Y...
"最大繰り返し回数", &val);
if (!isok) {
xp = new MSGraph<sWord>();
xp->state = ERROR_GRAPH_CANCEL;
return xp;
}
/////////////////////////////////////////
// 以下に処理コードを書く
// 入力 vp, 出力 xp
/////////////////////////////////////////
int xsize = Xsize;
int ysize = (int)(xsize*(Ymax-Ymin)/(Xmax-Xmin) + 0.5);
double dC = (Xmax-Xmin)/xsize; // 刻み幅
xp = new MSGraph<sWord>(xsize, ysize); // (xsize ×...
int i, j, k;
double Cr, Ci, Zr, Zi, Zrp, Zip;
Ci = Ymax;
for (j=0; j<xp->ys; j++) {
Cr = Xmin;
for (i=0; i<xp->xs; i++) {
Zrp = 0.0;
Zip = 0.0;
k = 0;
// 漸化式の計算 Z(n+1) = Z(n) + C
do {
Zr = Zrp*Zrp - Zip*Zip + Cr;
Zi = 2.*Zrp*Zip + Ci;
Zrp = Zr;
Zip = Zi;
k++;
} while (Zr<Infnty && Zi<Infnty && k<=(int)va...
xp->point(i, j) = (sWord)((double)(val-k+1)*4...
Cr += dC;
}
Ci -= dC;
}
xp->color = GRAPH_COLOR_ARGB16; // カラーモード
/////////////////////////////////////////
// 処理コードはここまで
/////////////////////////////////////////
return xp;
}
終了行:
*** mandel_proc
MANDEL_API MSGraph<sWord>* mandel_proc(MSGraph<sWord>* vp)
{
MSGraph<sWord>* xp = NULL;
int Xsize = 600; // スクリーンのXサイズ
double Infnty = 1.0e8; // 無限大
double Xmin = -2.5; // X軸(実数部)の最小値の...
double Xmax = 1.0; // X軸(実数部)の最大値の...
double Ymin = -1.5; // Y軸(虚数部)の最小値の...
double Ymax = 1.5; // Y軸(虚数部)の最大値の...
double val = 200; // 最大繰り返し回数の初期値
// 数値入力用ダイアログ
BOOL isok = InputMultiNumDLG("X軸の最小値", &Xmin, "X...
"Y軸の最小値", &Ymin, "Y...
"最大繰り返し回数", &val);
if (!isok) {
xp = new MSGraph<sWord>();
xp->state = ERROR_GRAPH_CANCEL;
return xp;
}
/////////////////////////////////////////
// 以下に処理コードを書く
// 入力 vp, 出力 xp
/////////////////////////////////////////
int xsize = Xsize;
int ysize = (int)(xsize*(Ymax-Ymin)/(Xmax-Xmin) + 0.5);
double dC = (Xmax-Xmin)/xsize; // 刻み幅
xp = new MSGraph<sWord>(xsize, ysize); // (xsize ×...
int i, j, k;
double Cr, Ci, Zr, Zi, Zrp, Zip;
Ci = Ymax;
for (j=0; j<xp->ys; j++) {
Cr = Xmin;
for (i=0; i<xp->xs; i++) {
Zrp = 0.0;
Zip = 0.0;
k = 0;
// 漸化式の計算 Z(n+1) = Z(n) + C
do {
Zr = Zrp*Zrp - Zip*Zip + Cr;
Zi = 2.*Zrp*Zip + Ci;
Zrp = Zr;
Zip = Zi;
k++;
} while (Zr<Infnty && Zi<Infnty && k<=(int)va...
xp->point(i, j) = (sWord)((double)(val-k+1)*4...
Cr += dC;
}
Ci -= dC;
}
xp->color = GRAPH_COLOR_ARGB16; // カラーモード
/////////////////////////////////////////
// 処理コードはここまで
/////////////////////////////////////////
return xp;
}
ページ名:
サイト内 検索
高度な検索
ログイン
ユーザー名:
パスワード:
パスワード紛失
新規登録
サブ メニュー
新着情報
Books
リンク
サイトマップ
e-Learning
TUIS 認証局証明書
ミニカレンダー
2025年 2月
日
月
火
水
木
金
土
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
<今日>
オンライン状況
108 人のユーザが現在オンラインです。 (3 人のユーザが xpwiki を参照しています。)
登録ユーザ: 0
ゲスト: 108
もっと...
アクセスカウンタ
今日 :
昨日 :
総計 :
Powered by XOOPS Cube 2.1© 2001-2006
XOOPS Cube Project
Design by
XoopsDesign.com