所以我阅读了这篇文章: http: //www.wikihow.com/Plot-the-Mandelbrot-Set-By-Hand 但我被困在第 7 步。我在 javascript 画布中绘制集合。
我所需要的基本上是我猜的 C 值。
for (var y = 0; y < ImageHeight; y++) {
for (var x = 0; x < ImageWidth; x++) {
// Pixel-Position for ImageObject
var xy = (x + y * image.width) * 4;
// Convert Image-Dimension to a radius of 2
var xi = ((x / ImageWidth) * 4) - 2;
var yi = ((y / ImageHeight) * 4) - 2;
for (var n = 0; n < MaxIterations; n++) {
// Complex number stuff..?
z = (xi*xi) + (yi*yi) + c;
c = 0; // Somethig with z ..?
if (z < 4) {
image.data[xy] = inner_color[0];
image.data[xy+1] = inner_color[1];
image.data[xy+2] = inner_color[2];
image.data[xy+3] = Math.round(n * cdiff);
} else {
image.data[xy] = outer_color[0];
image.data[xy+1] = outer_color[1];
image.data[xy+2] = outer_color[2];
image.data[xy+3] = Math.round(n * cdiff);
break;
}
}
}
}
我还阅读了很多关于虚数之类的东西,但我不太明白如何用它们进行计算。而且它们对我来说似乎毫无用处,因为无论如何您都必须将它们转换回实数才能在javascript中进行逻辑运算。
下面是它的样子: [已删除]
如果您删除 url 末尾的 2,您会看到另一个版本,我只是重写了一些 c++ 代码片段。但是缩放有点奇怪,这就是为什么我想自己写。
我了解 mandelbrot 集创建的基本概念,但正如我所说,复杂的部分让我感到困扰。那里可能有更简单的解释吗?