碎形影像的產生

程式設計:

FORTRAN PowerStation 搭配李錫堤博士發展之PLOT3D繪圖程式庫

預設值一

輸入以下各參數
型式 Julia 點 左上角 右下角 影像大小 256色調色盤

Mandelbrot
Julia
實部

虛部
實部

虛部
實部

虛部
水平像素

垂直像素
顏色起始值

顏色增加值
計算次數上限

預設值二

輸入以下各參數
型式 Julia 點 左上角 右下角 影像大小 256色調色盤

Mandelbrot
Julia
實部

虛部
實部

虛部
實部

虛部
水平像素

垂直像素
顏色起始值

顏色增加值
計算次數上限

碎形影像產生的型式


    本程式碎形影像產生的原理在於重複疊代某一公式。開始先給公

式一個初始值,計算其結果,將結果傳給公式再計算其結果。在重複

疊代的計算過程中,必須檢查每一次的計算結果。由使用的公式、初

始值、重複疊代次數與計算結果檢查的標準而產生不同的碎形影像。

    Mandelbrot型式雖然極為複雜,但它是由一個非常簡單的公式所

產生的:Z2+c,其中c是最初給定公式的複數(即下圖之z(x,y),不同

的z值有不的c值)。
計算公式為:Z(下一次)=Z(上一次)2+c

第一次計算時,因無Z(上一次),所以Z(下一次)=c

第二次計算時,Z(下一次)=c2+c,因此

                        Z2=Z12+c
                        Z3=Z22+c
                        Z4=Z32+c
                          …
                        Zn+1=Zn2+c

在每一次的計算中c是個定值,為最初給定公式的複數,而Z則為上一

次所計算的結果。在計算過程中,必須檢查每一次的計算結果:

1.若計算結果所得到的複數與原點間的距離大於 2,計算結果一定會

趨於無限大,則判定最初給定公式的複數不在型式內,計算必在有限

次內結束。每一最初給定的複數使Zn+1與原點間的距離大於 2的計算

次數是不一樣的,可以根據顏色的初始值及不同的計算次數與顏色增

加值,描繪出漂亮的彩色圖形來。

2.若計算結果所得到的複數與原點間的距離小於 2,計算結果一定會

趨於有限,可以根據電腦的處理能力規定一個計算次數上限,如果在

計算這麼多次後,Zn+1仍落在以原點為中心,以 2為半徑的圓內,就

判定所選最初給定公式的複數在型式內,由顏色的初始值及計算次數

上限與顏色增加值給定該點顏色。

    因此,產生碎形影像的流程如下:

1.在複數平面上取得一點,如上圖z(x,y),此點為最初給定的複數,
  即為c值。

2.將其值代入公式計算。

3.由計算結果檢驗與原點間的距離是否大於 2?是:點不在型式內,
  由顏色的初始值及不同的計算次數與顏色增加值決定該點之顏色,
  並跳到步驟5.。否:繼續計算。

4.是否到計算次數的上限?是:點在型式內,由顏色的初始值及計算
  次數的上限與顏色增加值決定該點之顏色。否:回到步驟2.。

5.在複數平面上取得另一點,並重複步驟2.。

    Julia 型式與Mandelbrot型式是非常相似的,但它的數量是無限

的,也就是說,每當產生一個Julia 型式時,可能還不曾有人看過這

個圖形。事實上Julia 型式與Mandelbrot型式使用的公式相同,只是

運用公式的方法不同。在Mandelbrot型式中c值是會變動的(對於不相

同的點,有不相同的c值,但在該點的計算過程中,c 值是不變的),

它是取自複數平面上的一個點的座標位置,但Julia型式中c值是固定

不變的(對於不相同的點,有相同的c值且在該點的計算過程中,c 值

亦是不變的)。判斷某點是否為Julia型式的規則與Mandelbrot型式是

相同的。雖然Julia 型式有無限多個,不過有些圖形是相當複雜且美

麗,但也有一些是平凡無趣的。

256色調色盤
由表中顏色值可決定選擇不同的顏色初始值,
在每經一次計算後可選擇不同的顏色增加值。
0 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
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111
112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127
128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143
144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159
160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175
176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191
192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207
208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223
224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239
240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255