私は C++ でのプログラミングにかなり慣れていないので、改善するためにマンデルブロー セットのコンソール アプリケーションを作成しようとしています。ほぼ完璧に動作するようになりました。画像が生成され、ズームイン/ズームアウトし、非常に簡単に移動できます。ただし、私が抱えている問題は、画像の端にズームインし始めると、端が「切り取られ」始めることです。
ズームアウトした画像:
少し拡大した画像 - ご覧のとおり、最後の「円」の半分が切り落とされています。
最後に、ズームインすると、最後の「円」全体が完全に切り取られています。
ズームインし続けると、大きな円のエッジも切り刻まれ始めます。なぜこれが起こっているのか完全にはわかりませんが、ズーム方法が何らかの原因であると思います。
アルゴリズム計算関数のソースコードは次のとおりです(エラーがあると推測しています):
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;
}
ソース コード全体については、次の URL にアクセスしてください (私の予測は間違っている可能性が高いため): http://pastebin.com/WhbS0WYE
任意の提案および/または支援を歓迎します。前もって感謝します!