?? fc1.cpp
字號(hào):
/*
// 和混沌密切相關(guān)的另一門學(xué)科是分形學(xué)。分形是由IBM公司的
//科學(xué)家曼德勃羅特在1975年提出的,作為計(jì)算機(jī)圖形學(xué)的一個(gè)分支,
//用分形的方法生成的圖像向人們展示了在簡單的數(shù)學(xué)模型中蘊(yùn)涵的
//內(nèi)在美、對(duì)稱性和復(fù)雜性。下面的第一幅圖被稱作曼德勃羅特集,
//其余幾幅分別是對(duì)它的某個(gè)細(xì)節(jié)放大得到的。
// 曼德勃羅特集的數(shù)學(xué)模型非常簡單。假設(shè)有復(fù)數(shù)Z和μ,用下式
//迭代計(jì)算:Z=Z2+μ,由于μ的取值不同,經(jīng)過若干次數(shù)迭代以后Z
//的幅值可能趨向無窮,也可能保持有界,曼德勃羅特集就是那些使
//Z保持有界的μ的集合,把μ在復(fù)平面上的分布作成圖像,就像上
//面演示的那樣具有極其復(fù)雜的結(jié)構(gòu)。
//下面的程序用TC2.0編寫, 假設(shè)屏幕的分辨率為640×480。
#include <graphics.h>
main()
{
int nThre=100; // 其中nThre代表設(shè)置的門限值,當(dāng)?shù)骦的幅值的平方大于nThre則認(rèn)為趨于無窮
int xCord,yCord,nColor,nTimes; //xCord和yCord分別代表平面上的點(diǎn)的坐標(biāo)位置,nColor代表作圖時(shí)所使用的顏色,nTimes表示迭代的次數(shù)
float reP,rePmin=-1.5,rePmax=0.75; //reP表示由平面上一點(diǎn)所代表的μ值的實(shí)部,rePmax、rePmin分別代表μ值實(shí)部可取的最大值和最小值
float imP,imPmin=-1.5,imPmax=1.5; //imP、imPmax和imPmin分別代表μ的虛部及其容許的最大值和最小值
float reZ,imZ,tmpReZ,deltImP,deltReP,absZ;
//reZ和imZ分別代表Z值的實(shí)部和虛部,deltImP、deltReP表示每一個(gè)象素的代表的實(shí)部和虛部值的大小,absZ代表Z值的幅值
int GraphDriver=DETECT,GraphMode; //初始化圖形顯示
initgraph(&GraphDriver,&GraphMode,“ ");
deltReP=(rePmax-rePmin)/640; //計(jì)算屏幕上一個(gè)像素表
deltImP=(imPmax-imPmin)/480; //和虛部值的大小示的
for(xCord=1;xCord<641;xCord++)
{
for (yCord=1;yCord<481;yCord++)
{
reP=rePmin+deltReP*xCord; //計(jì)算屏幕上一點(diǎn)所
imP=imPmin+deltImP*yCord;//代表的μ值大小
reZ=0; imZ=0;
for(nTimes=0;nTimes<160;nTimes++)
{
tmpReZ=reZ*reZ-imZ*imZ+reP; //計(jì)算迭代后的Z
imZ=2*reZ*imZ+imP;//值及其幅值大小
reZ=tmpReZ;absZ=reZ*reZ+imZ*imZ;
if (absZ>nThre)
{
nColor=nTimes/10;
break;
}
//如果幅值的平方大于門限值終止迭代
nColor=0;
}
putpixel(xCord,yCord,nColor);//用指定的顏色作點(diǎn)
}
}
getch();
}
// 上面的程序中,可以通過改變imPmin、imPmax以及rePmin與rePmax的值
//來對(duì)圖像的局部細(xì)節(jié)進(jìn)行放大,從而可以觀察到更加精美復(fù)雜的圖像,領(lǐng)悟
//分形圖像的神韻。
// 曼德勃羅特集是人們發(fā)現(xiàn)的最早的分形圖形之一,也是人們研究最多的
//分形圖形之一,今年的菲爾茲獎(jiǎng)(數(shù)學(xué)界的最高獎(jiǎng))得主麥克馬蘭就是因?yàn)?//在曼德勃羅特集研究中的成績而獲此殊榮的。這些年關(guān)于分形的研究已經(jīng)滲
//透到科學(xué)領(lǐng)域的各個(gè)學(xué)科,在計(jì)算機(jī)領(lǐng)域利用分形的方法來對(duì)自然景物進(jìn)行
//逼真的模擬是一個(gè)很具挑戰(zhàn)性的研究方向。
// (蘭州大學(xué)2041信箱 梁昌霖 730000)
*/
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -