Skip to content

Uses OpenGL to display the mandelbrot and julia sets

Notifications You must be signed in to change notification settings

PYates77/Mandelbrot

Repository files navigation

Mandelbrot Project

I wrote this for my Advanced Programming class It uses C++ and OpenGL shaders to perform rendering of mandelbrot and julia sets

There's also a super-simple terminal-only version in the mandelbrot-simple version

Building

Dependencies include GLEW, GLUT, and OpenGL. Honestly I don't remember everything I did to get the dependencies installed, but it was a pain. It definitely works on ubuntu though. It used to work on windows, so if you look back in my git revision history or something, you might the correct CMakeLists. But I distinctly remember that installing the dependencies was really hard. If you're on mac... god help you.

After that it's your normal cmake process of building

mkdir build && cd build
cmake ..
make 

Then get upset when it fails, fix a dependency, and try again.

Using

Here are some handy-dandy keybindings that I built in

ESC - Exit the program

W/A/S/D - Move around

-/+ - Change the number of iterations used before the program decides that an expression diverges or not

M/J - Change between mandelbrot and julia sets

0-9 - Change the exponent between 2 and 11 (where the 1 key is 2 and the 0 key is 11... it's just the way the keys are laid out on the keyboard... try swiping your finger across all the numbers, that's fun)

[/] - Change the angle of the constant, c, in the julia expression (c = magnitude*cos(angle)+i*magnitude*sin(angle))

;/' - Semicolon and apostraphe (I know, super intuitive controls, Paul) change the magnitude of the constant, c, in the julia expression (c = magnitude*cos(angle)+i*magnitude*sin(angle))

Scrolling the mouse in and out changes the zoom level. Clicking the mouse is supposed to move you around the image, but it doesn't work very well right now, so if anybody actually goes through the effort of fixing that, they should hit me with a merge request.

mandelbrot-simple

Some time after creating this fancy OpenGL version, I did a super simple ascii art version that you can find in the mandelbrot-simple folder

To build:

gcc mandelbrot.c -o mandelbrot -lm

About

Uses OpenGL to display the mandelbrot and julia sets

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages