为什么会产生拉伸的分形?

时间:2008-11-26 04:27:23

标签: math fractals

下面是我如何设置表示MandelBrot集合的数组的伪代码,但是当保留1:1的宽高比时,它会变得非常紧张。

xStep = (maxX - minX) / width;
yStep = (maxY - minY) / height;

for(i = 0; i < width; i++)
 for(j = 0; j < height; j++)
  {
   constantReal = minReal + xStep * i;
   constantImag = minImag + yStep * j;
   image[i][j] = inSet(constantReal, constantImag);
  }

谢谢!

3 个答案:

答案 0 :(得分:7)

  

这是我如何设置表示MandelBrot集的数组的伪代码   当长宽比为1:1时,会变得非常紧张。

xStep = (maxX - minX) / width;
yStep = (maxY - minY) / height;

啊哈!这是因为您必须为要绘制的复平面区域绘制的图像保持相同的宽高比 。换句话说,它必须持有

 width     maxX - minX
---------- = ---------------------
 height    maxY - minY

(以下是xStep == yStep。)您的代码可能不会强制执行此要求。

答案 1 :(得分:0)

这可能与您展示image数组的方式有关。您使用宽度变量i作为第一个索引,但通常第一个索引应该是最慢的变化,即高度。

尝试将最后一行更改为image[j][i] = ...

答案 2 :(得分:0)

确保你的演员都是正确的。 xStep和yStep可能是整数除法的乘积而不是预期的浮点除法(如果样本中的C#,则需要一些显式强制转换才能正常工作)。