2015-05-28 59 views
0

我的腳本標籤標籤包含一個名爲math.js的數學庫它可以處理複數和其他高級數學函數。Mandelbrot設置程序不能在JS提琴中工作

i = 0; 
z = math.complex(0, 0); 
c = math.complex(-0.75, -0.1); 
function Mandelbrot() { 
    function Magnitude() { 
     a = z.re; 
     b = z.im; 
     return(math.sqrt(math.pow(a, 2) + math.pow(b, 2))); 
    } 
    while (Magnitude() <= 2 && i < 100) { 
     z = math.pow(z, 2) + c; 
     i++; 
    } 
    alert(i) 
} 
Mandelbrot(); 

該程序被認爲是我正在繪製Mandelbrot集的程序的基礎。

這裏的鏈接到小提琴:https://jsfiddle.net/noahthefuzzy/ryvtL3Lq/1/

+0

'z'是一個對象。你不能提高對象的權力。換句話說......'math.pow(z,2)'拋出一個錯誤... – sfletche

+0

儘管它實際上不是'Math.pow',但是這個庫'math.pow'事物和'z'在那點被定義... – Xufox

+0

我提出了建議的更改。這裏是新的小提琴:https://jsfiddle.net/noahthefuzzy/ryvtL3Lq/2/仍然不工作,雖然 – Liam

回答

1

您需要使用math.add而不是+添加C,因爲C是一個對象存儲複數:

z = math.add(math.pow(z, 2), c); 
+0

這就是我的想法。當'math.pow(z,2)+ c'執行時,他得到'「0-0.75 - 0.1i」'。他需要再次將其解析爲複數。 – Xufox

+0

非常感謝。如果你感興趣,我正在做一個愚蠢的數學藝術項目,我想我會變得很酷 – Liam