This project generates a self-similar Mandelbrot like sets according to specifications from user input. The options are quadratic Mandelbrot(https://en.wikipedia.org/wiki/Mandelbrot_set) or Mandelbar(https://en.wikipedia.org/wiki/Tricorn_(mathematics)) as well as Cubic parametrized and nonparametrized multibrot sets.
- cmake >= 3.7
- All OSes: click here for installation instructions
- make >= 4.1 (Linux, Mac), 3.81 (Windows)
- Linux: make is installed by default on most Linux distros
- Mac: install Xcode command line tools to get make
- Windows: Click here for installation instructions
- gcc/g++ >= 5.4
- Linux: gcc / g++ is installed by default on most Linux distros
- Mac: same deal as make - install Xcode command line tools
- Windows: recommend using MinGW
Install C++ FreeImage library.
The project consists of the following files:
frame.h
- defin a "window" class where the image to be generated.saveimage.cpp
- For ploting each pixel and saving it to a file.saveimage.h
- Header file forsaveimage.cpp
.main.cpp
- The main program.
- The project demonstrates an understanding of C++ functions and control structures. The
saveimage.cpp
andmain.cpp
files are divided into functions. Anif-else if -else
statement is used in themain()
function inmain.cpp
as well asvoid()
function insaveimage.cpp
. - The project reads data from a file and process the data, or the program writes data to a file. In
void plot()
insaveimage.cpp
, the FreeImage library is used to write PNG files of the Mandelbrot set. - The project accepts user input and processes the input. In the
main()
function inmain.cpp
, users are asked a series of questions, like whether they want a quadratic or cubic. Also, they can enter the length of the image and also decide if the want to make a parametrized multibrot set. - The project uses OOP and template techniques. In
frame.h
, look at the classWindow
. - Classes use appropriate public and private members.
- Clone the repo.
mkdir build && cd build
cmake .. && make
./Capstone
.- Enter some info and parameter values.
- Find the corresponding generated image in the
/build/
folder.