我是一個相當新的C++編程,爲了提高我試圖做一個mandelbrot集CONSOL應用程序。我已經完成了它的工作:圖像生成,我可以放大/縮小,並且很容易移動。我的問題,不過,是當我開始放大就進了圖像的邊緣,邊緣會開始變得「切斷」MandelbrotSet zoom
圖片縮小:
形象放大一點 - 你可以看到過去的「圓」的一半已經被砍掉了:
最後,在一個時間放大,整個最後一個「圈」已被完全砍斷:
如果我不停地放大,那麼更大的圓圈的邊緣將開始被砍傷了。 我完全不明白爲什麼會發生這種情況,但我的猜測是我的縮放方法有點怪罪。
這裏是該算法計算功能的源代碼(如果我猜的錯誤):
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
歡迎任何建議和/或協助。先謝謝你!
嗯。我現在開始看看'y/= zoom'是怎麼樣的和'x/=縮放;'在代碼中會導致問題。我忘了它實際上增加了'x'和'y'值,並再次在循環中運行增加的值(我有時會這樣做)。感謝您的幫助! –