Releases: hotbrightsunshine/mandelbrotpp
v1.1-alpha
Version 1.1 brings a big code rework: refactoring is the main purpose of this release. Classes were finally implemented, making the overall API more usable and readable. This step was necessary, in order to start implementing the features listed in the to-do list.
Like the last one, a precompiled Linux binary file is provided. Mac OS X and Windows users might want to compile the source code themselves.
v1-alpha
Mandelbrotpp v1-alpha is the first fully working release of this Mandelbrot visualizer. It isn't optimized yet, and lags when handling
really small floating point numbers.
Memory
Memory occupied by the program varies, based on the size of the window.
Generally, it can be approximated with: width * height * (2*8bytes + 4bytes). In fact, to each pixel, is associated a complex number made by two doubles, and an unsigned integer, which measures the number of iterations took for the number to reach the THRESHOLD
value.
Resolution (pixel) | Memory required (MB) |
---|---|
1000x1000 | 20 |
500X500 | 5 |
250x250 | 1.25 |
Movement in the real and imaginary axes
User can move in the complex plane hitting the following keys.
UP
,DOWN
,LEFT
,RIGHT
move the canvas respectively,O
andI
zoom out and in the canvas.
To-do
- I plan to add a configuration file in which to store the constants needed to run the program. Those include:
- the
HEIGHT
and theWIDTH
of the SDL window, - the number of iterations and the value of the threshold and, ultimately,
- the translation coefficient.;
- the
- Support for rectangular windows is planned;
- Parallel computations are required and will be added as soon as possible;
- Optimization and GPU calculations are planned;
- Higher window dimensions render nearly invisible pixels: resolution could be scaled, in order to reduce calculations to perform.
Other features will be added in appropriate documentations
Execution
To execute the Mandelbrotpp, SDL2 is required. Libraries under /libs
are statically linked, and don't require compilation. Read the official docs of SDL2 to learn more about how to install the requirements.
To manually compile the source code, use a C++23 compatible compiler, according to your operative system. Usually, Microsoft Windows users compile using mingw
or visual-c
, Max OS X and Linux users use respectively clang
and g++
.
Execute the executable file with the following
chmod +x mandelbrotpp-v1-alpha
./mandelbrotpp-v1-alpha