?? vcc17.htm
字號:
<html>
<head>
<title>c++系列</title>
<meta content="text/html; charset=gb2312" http-equiv=Content-Type>
</head>
<p align="center"><script src="../../1.js"></script></a>
<body bgcolor="#ffffff" leftmargin="5" topmargin="1" marginheight="5" marginwidth="5">
<div align=center>
<table border=0 cellpadding=0 cellspacing=0 width=680 align="center">
<tbody>
<tr>
<td width=200 height="59">
</tr>
</tbody>
</table>
<table border=1 bordercolordark=#ffffff bordercolorlight=#ffffff cellpadding=0
cellspacing=0 width=685 align="center" height="70">
<tbody>
<tr>
<td bgcolor=#F9D23C height=14>
<div align=center class=H1> <big class="unnamed1"> 簡單演繹的美麗</span></big></font></b></font></b></font></div>
</td>
</tr>
<tr valign=top>
<td class=H1 height=212>
<p align="center"><big><font color="#FF0000"></font></big></p>
<p> <font color="#FF0000"> <font color="#003333"> 和混沌密切相關的另一門學科是分形學。分形是由IBM公司的科學家曼德勃羅特在1975年提出的,作為計算機圖形學的一個分支,用分形的方法生成的圖像向人們展示了在簡單的數學模型中蘊涵的內在美、對稱性和復雜性。下面的第一幅圖被稱作曼德勃羅特集,其余幾幅分別是對它的某個細節放大得到的。<br>
曼德勃羅特集的數學模型非常簡單。假設有復數Z和μ,用下式迭代計算:Z=Z2+μ,由于μ的取值不同,經過若干次數迭代以后Z的幅值可能趨向無窮,也可能保持有界,曼德勃羅特集就是那些使Z保持有界的μ的集合,把μ在復平面上的分布作成圖像,就像上面演示的那樣具有極其復雜的結構。<br>
下面的程序用TC2.0編寫, 假設屏幕的分辨率為640×480。<br>
#include <graphics.h><br>
main(){<br>
int nThre=100; /* 其中nThre代表設置的門限值,當迭代后Z的幅值的平方大于nThre則認為趨于無窮*/<br>
int xCord,yCord,nColor,nTimes; /*xCord和yCord分別代表平面上的點的坐標位置,nColor代表作圖時所使用的顏色,nTimes表示迭代的次數
*/<br>
float reP,rePmin=-1.5,rePmax=0.75; /*reP表示由平面上一點所代表的μ值的實部,rePmax、rePmin分別代表μ值實部可取的最大值和最小值*/<br>
float imP,imPmin=-1.5,imPmax=1.5; /*imP、imPmax和imPmin分別代表μ的虛部及其容許的最大值和最小值*/<br>
float reZ,imZ,tmpReZ,deltImP,deltReP,absZ; <br>
/*reZ和imZ分別代表Z值的實部和虛部,deltImP、deltReP表示每一個象素的代表的實部和虛部值的大小,absZ代表Z值的幅值
*/ <br>
int GraphDriver=DETECT,GraphMode; /*初始化圖形顯示*/<br>
initgraph(&GraphDriver,&GraphMode,“ ");<br>
deltReP=(rePmax-rePmin)/640; /*計算屏幕上一個像素表*/<br>
deltImP=(imPmax-imPmin)/480; /*和虛部值的大小示的 */<br>
for(xCord=1;xCord<641;xCord++)<br>
for (yCord=1;yCord<481;yCord++){<br>
reP=rePmin+deltReP*xCord; /*計算屏幕上一點所*/<br>
imP=imPmin+deltImP*yCord;/*代表的μ值大小*/<br>
reZ=0; imZ=0;<br>
for(nTimes=0;nTimes<160;nTimes++){<br>
tmpReZ=reZ*reZ-imZ*imZ+reP; /*計算迭代后的Z*/<br>
imZ=2*reZ*imZ+imP;/*值及其幅值大小*/<br>
reZ=tmpReZ;absZ=reZ*reZ+imZ*imZ;<br>
if (absZ>nThre){nColor=nTimes/10;break;}<br>
/*如果幅值的平方大于門限值終止迭代*/<br>
nColor=0;}<br>
putpixel(xCord,yCord,nColor); }/*用指定的顏色作點*/<br>
getch();<br>
}<br>
上面的程序中,可以通過改變imPmin、imPmax以及rePmin與rePmax的值來對圖像的局部細節進行放大,從而可以觀察到更加精美復雜的圖像,領悟分形圖像的神韻。<br>
曼德勃羅特集是人們發現的最早的分形圖形之一,也是人們研究最多的分形圖形之一,今年的菲爾茲獎(數學界的最高獎)得主麥克馬蘭就是因為在曼德勃羅特集研究中的成績而獲此殊榮的。這些年關于分形的研究已經滲透到科學領域的各個學科,在計算機領域利用分形的方法來對自然景物進行逼真的模擬是一個很具挑戰性的研究方向。
(蘭州大學2041信箱 梁昌霖 730000)</font></font> </span>
</td>
</tr>
</tbody>
</table>
</div>
<p align="center"><script src="../../2.js"></script></a>
</body>
</html>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -