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