Skip to content

Yet Another Fractal Tool - multithreaded Mandelbrot fractal renderer using GMP and png++

License

Notifications You must be signed in to change notification settings

andrewlin16/yaft

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

yaft

YAFT (Yet Another Fractal Tool) is a command-line program that renders a portion of the Mandelbrot Set to a PNG file.

Details

YAFT is written in C++ and makes use of C++11 features, mainly its threading support.

YAFT uses GMP to render the fractal with arbitrary precision. It specifically uses the C++ class interfaces in GMP.

YAFT uses png++, which is a C++ wrapper for libpng, to render the fractal image output to a PNG file.

YAFT uses an escape time algorithm to render the Mandelbrot fractal. Each thread renders chunks/sections of 2048 pixels.

Usage

YAFT takes in rendering parameters through command line arguments. Running YAFT without any arguments will print out usage instructions:

Usage: ./yaft xmin xmax ymin ymax width height outfile
  • xmin: the left boundary of the render window
  • xmax: the right boundary of the render window
  • ymin: the bottom boundary of the render window
  • ymax: the top boundary of the render window
  • width: the width of the rendered image in pixels
  • height: the height of the rendered image in pixels
  • outfile: the file path/name to save the rendered image to

Examples can be seen in the test.sh and bigtest.sh files.

Example: ./yaft -1.5 0.5 -1 1 256 256 test.png will render the fractal in a window with corners (-1.5, -1) to (0.5, 1) and output it to a 256x256 image named test.png.

On Debian/Ubuntu systems, you will need to install the libgmp-dev and the libpng++-dev packages to build this package.

License

yaft is licensed under the MIT license. See LICENSE.txt.

About

Yet Another Fractal Tool - multithreaded Mandelbrot fractal renderer using GMP and png++

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published