Cómo realizar Zoom simple en Mandelbrot Set
Tengo una pregunta general con la vista de "zoom" del conjunto de Mandelbrot y las matemáticas correspondientes. He implementado el conjunto mandelbrot para el tamaño de ventana de 256 X 256 con valores
// ImageWidth = ImageHeight = 256;
double MinRe = -2.0;
double MaxRe = 1.0;
double MinIm = -1.2;
double MaxIm = 1.8;
ComputeMandelbrot();
A continuación, selecciono una región de cuadrado y estas son las coordenadas para la punta superior izquierda (76,55) y la punta inferior derecha (116, 99) (se elige el cuadrado del lado 44)
so, elijox2 = x1 + 44 ; y2 = y1 + 44;
¿Cómo traduzco estas nuevas coordenadas al plano complejo? y ¿cómo cambiarían los nuevos valores reales e imaginarios para calcularlo para el nuevo conjunto de valores?
Esto es lo que he intentado hasta ahora ..
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();
}
}
¡Me está costando resolver las matemáticas, y también con respecto a generar una vista de 'zoom' y cualquier ayuda es apreciada !!