comparison README.md @ 31:61104b22a25d

I think it is working now...
author Dennis C. M. <dennis@denniscm.com>
date Thu, 29 Jun 2023 18:05:22 +0100
parents 99592fae8ea1
children b1a605eb721a
comparison
equal deleted inserted replaced
30:f945bcc3571f 31:61104b22a25d
1 # algo-animator 1 # algo-animator
2 2
3 This project is inspired by - off course - the video by Timo Bingmann called [15 sorting algorithms in 6 minutes](https://www.youtube.com/watch?v=kPRA0W1kECg). 3 An interactive program to visualize sorting algorithms.
4
5 This project is inspired by - off course - the video by Timo Bingmann called
6 [15 sorting algorithms in 6 minutes](https://www.youtube.com/watch?v=kPRA0W1kECg).
4 7
5 ![Image 1](repo/1.png) 8 ![Image 1](repo/1.png)
6 ![Image 2](repo/2.png) 9 ![Image 2](repo/2.png)
10
7 11
8 ## Compile 12 ## Compile
9 13
10 ```bash 14 ```bash
11 mkdir build 15 mkdir build
12 cd build 16 cd build
13 cmake .. 17 cmake ..
14 make 18 make
15 ./algo_animator 19 ./algo_animator
16 ``` 20 ```
17
18
19 ## To improve
20
21 Since `GLUT` is single-thread, I cannot call `glutPostRedisplay()` within `while` or `for loops` to redraw the screen in every
22 step of the selected sorting algorithm. I guess the solution is multi-threading, so I can perform the sorting in the second thread
23 and post notifications to the main thread to redraw the screen.
24
25 Since this is my first OpenGL project and just my second program in C, I am tired and I don't want to spend more time in this project,
26 but maybe in the future I'll do it. Right now there are just two algorithms supported. I've implemented them in a way that every function
27 call is a single step of the sorting. So, storing the "state" outside the function, I can use `idle()` as the loop of the sorting algorithm.
28
29 Let's say we selected `bubble sort`. Once you press `ENTER`, the process will be like this:
30
31 ```c
32 run = true;
33 bubble_sort();
34 glutPostRedisplay;
35 bubble_sort();
36 glutPostRedisplay;
37 bubble_sort();
38 glutPostRedisplay;
39
40 // Continue until the array is sorted
41 run = false;
42 ```