diff options
| author | Charles <sircharlesaze@gmail.com> | 2019-08-27 19:19:59 +0200 |
|---|---|---|
| committer | Charles <sircharlesaze@gmail.com> | 2019-08-27 19:19:59 +0200 |
| commit | 003e9e628b3e7b516d3d70d78b6ba97bca69c813 (patch) | |
| tree | b775b5a889bee1ef32fa37713a43964fc6bd1d43 /graphics.c | |
| parent | ce5cf1b60dae81540b2db366b1408a961f771dcc (diff) | |
| download | mandelbrot_cpu-003e9e628b3e7b516d3d70d78b6ba97bca69c813.tar.gz mandelbrot_cpu-003e9e628b3e7b516d3d70d78b6ba97bca69c813.tar.bz2 mandelbrot_cpu-003e9e628b3e7b516d3d70d78b6ba97bca69c813.zip | |
Brightness level according to step before excusion
The test to check if something is in the set return -1 else returns the
number of steps, then map the step to a brightness of the pixel.
Diffstat (limited to 'graphics.c')
| -rw-r--r-- | graphics.c | 17 |
1 files changed, 10 insertions, 7 deletions
@@ -46,18 +46,21 @@ void graphics_run(GState *state) static void update(GState *state) { - SDL_SetRenderDrawColor(state->renderer, 155, 155, 155, SDL_ALPHA_OPAQUE); + SDL_SetRenderDrawColor(state->renderer, 0, 0, 0, SDL_ALPHA_OPAQUE); SDL_RenderClear(state->renderer); for (int x = 0; x < WINDOW_W; x++) { for (int y = 0; y < WINDOW_H; y++) { - if (mandelbrot_in_set(map_range((double)x, 0, WINDOW_W, LO, HI) - + map_range((double)y, 0, WINDOW_H, LO, HI) * I)) - { - SDL_SetRenderDrawColor(state->renderer, 0, 0, 0, SDL_ALPHA_OPAQUE); - SDL_RenderDrawPoint(state->renderer, x, y); - } + double complex mapped_z = map_range((double)x, 0, WINDOW_W, LO, HI) + + map_range((double)y, 0, WINDOW_H, LO, HI) * I; + int steps = mandelbrot_in_set(mapped_z); + if (steps == -1) + continue; + double brightness = map_range(steps, LO, HI, 0, 20); + SDL_SetRenderDrawColor(state->renderer, brightness, brightness, + brightness, SDL_ALPHA_OPAQUE); + SDL_RenderDrawPoint(state->renderer, x, y); } } SDL_RenderPresent(state->renderer); |
