【发布时间】:2012-10-20 16:30:23
【问题描述】:
我是 C++ 编程的新手,为了改进我正在尝试制作一个 mandelbrot set consol 应用程序。我已经让它几乎完美地工作:图像生成,我可以放大/缩小,并且非常容易移动。不过,我遇到的问题是,当我开始放大图像的边缘时,边缘将开始“被切断”
图片缩小:
图片放大一点 - 正如你所见,最后一个“圆圈”被切掉了一半:
最后,放大一圈,最后一个“圈”已经被完全切掉了:
如果我继续放大,那么大圆圈的边缘也会开始被切掉。 我完全不明白为什么会发生这种情况,但我猜想是我的缩放方法应该归咎于某种原因。
这里是算法计算函数的源代码(我猜是错误的地方):
int fractalCalc(double x0, double y0, double zoom)
{
double x = 0;
double y = 0;
int iteration = 0;
int max_iteration = 1000; //1000
double xtemp;
while (x*x + y*y < 2*2 && iteration < max_iteration) //x*x + y*y < 2*2 && iteration < max_iteration
{
xtemp = x*x - y*y + x0;
y = 2*x*y + y0;
y /= zoom;
x = xtemp;
x /= zoom;
iteration++;
}
return iteration;
}
完整的源代码,请转到(因为我的预测很可能是错误的):http://pastebin.com/WhbS0WYE
欢迎任何建议和/或帮助。提前谢谢!
【问题讨论】:
标签: c++ mandelbrot