The example project of this chapter is the multithreaded calculation of a Mandelbrot fractal. The user will see the fractal and will be able to pan and zoom in on that window.
Before diving into the code, we need a broad understanding of a fractal and how we are going to achieve its calculation.
The Mandelbrot fractal is a numerical set that works with complex numbers (a + bi). Each pixel is associated with a value calculated through iterations. If this iterated value diverges toward infinity, then the pixel is out of the Mandelbrot set. If not, then the pixel is inside the Mandelbrot set.
A visual representation of the Mandelbrot fractal looks like this:
Every black pixel in this image corresponds to a complex number for which the sequence tends to diverge to an infinite value. The white pixels correspond to complex numbers bounded to a finite...