Colour images.
[maximus:book.git] / mandelbrot.c
1 #include <complex.h>
2 #include <stdio.h>
3 #include <stdlib.h>
4
5 #include "mandelbrot.h"
6
7 int main(int argc, char **argv) {
8   int width = 1280;
9   int height = 720;
10   complex long double center = 0;
11   long double radius = 2;
12   int maximum_iterations = 4096;
13   long double escape_radius = 2;
14   long double escape_radius2 = escape_radius * escape_radius;
15   int float_type = 1;
16   int colour_type = 0;
17   if (argc > 3) {
18     center = strtold(argv[1], 0) + I * strtold(argv[2], 0);
19     radius = strtold(argv[3], 0);
20   }
21   if (argc > 4) {
22     float_type = atoi(argv[4]);
23   }
24   if (argc > 5) {
25     colour_type = atoi(argv[5]);
26   }
27   switch (colour_type) {
28     case 0:
29       switch (float_type) {
30         case 0:
31           render_greyf(width, height, center, radius, maximum_iterations, escape_radius2);
32           break;
33         case 1:
34           render_grey (width, height, center, radius, maximum_iterations, escape_radius2);
35           break;
36         case 2:
37           render_greyl(width, height, center, radius, maximum_iterations, escape_radius2);
38           break;
39       }
40       break;
41     case 1:
42       switch (float_type) {
43         case 0:
44           render_colourf(width, height, center, radius, maximum_iterations, escape_radius2);
45           break;
46         case 1:
47           render_colour (width, height, center, radius, maximum_iterations, escape_radius2);
48           break;
49         case 2:
50           render_colourl(width, height, center, radius, maximum_iterations, escape_radius2);
51           break;
52       }
53       break;
54   }
55   return 0;
56 }