マンデルブロ集合の「ズーム」ビューとそれに関連する数学に関する一般的な質問があります。256X256ウィンドウサイズのマンデルブロ集合を値で実装しました
// ImageWidth = ImageHeight = 256;
double MinRe = -2.0;
double MaxRe = 1.0;
double MinIm = -1.2;
double MaxIm = 1.8;
ComputeMandelbrot();
次に、正方形の領域を選択します。これらは、左上端(76,55)と右下端(116、99)の座標です(辺44の正方形が選択されています)
だから、私は選ぶx2 = x1 + 44 ; y2 = y1 + 44;
これらの新しい座標を複素平面に変換するにはどうすればよいですか?そして、新しい値のセットに対してそれを計算するために、新しい実数値と虚数値はどのように変化しますか?
これは私がこれまでに試したことです。
double Re_factor = (MaxRe-MinRe)/(ImageWidth-1);
double Im_factor = (MaxIm-MinIm)/(ImageHeight-1);
double newMinRe = MinRe + (Re_factor* x1);
double newMaxRe = MaxRe + (Re_factor* x2);
double newMinIm = MinIm + (Im_factor* y1);
double newMaxIm = MaxIm + (Im_factor* y2);
// and then I compute c - real and c- imag values
for(unsigned y=0; y<ImageHeight; ++y)
{
double c_im = newMaxIm - y*Im_factor;
for(unsigned x=0; x<ImageWidth; ++x)
{
double c_re = newMinRe + x*Re_factor;
// ComputeMandelbrot();
}
}
私は数学を理解するのに苦労しています、そしてまた「ズーム」ビューを生成することに関して、そしてどんな助けもありがたいです!!