【发布时间】:2015-05-17 11:12:21
【问题描述】:
我正在试验画布,我正在尝试修改 this piece of code,但不幸的是我不明白其中的某些部分。
我的问题是 - 如何自定义上述代码,例如由
f(z) = c^e(-z)
(公式取自一本有分形例子的书)?
我知道我需要更改这部分代码:
function computeRow(task) {
var iter = 0;
var c_i = task.i;
var max_iter = task.max_iter;
var escape = task.escape * task.escape;
task.values = [];
for (var i = 0; i < task.width; i++) {
var c_r = task.r_min + (task.r_max - task.r_min) * i / task.width;
var z_r = 0, z_i = 0;
for (iter = 0; z_r*z_r + z_i*z_i < escape && iter < max_iter; iter++) {
// z -> z^2 + c
var tmp = z_r*z_r - z_i*z_i + c_r;
z_i = 2 * z_r * z_i + c_i;
z_r = tmp;
}
if (iter == max_iter) {
iter = -1;
}
task.values.push(iter);
}
return task;
}
但不知道 z_i、z_r、c_i、c_r 的真正含义以及我如何将它们绑定到上述公式。
任何帮助将不胜感激。
【问题讨论】:
-
复数有两部分:实数和虚数。所以
z = z_r + z_i*i -
对不起,我真的不明白如何实现它。在上面的代码中 z=z^2 + c 但看不到 z 的确切使用位置和方式:(
标签: javascript canvas pseudocode fractals mandelbrot