annotate README.md @ 25:5262ea2cd3b4

rename
author Dennis C. M. <dennis@denniscm.com>
date Tue, 27 Jun 2023 20:17:12 +0100
parents bebd95177e96
children 2945f5898960
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
4
035d3880da04 render text with number of elements on screen
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
1 # algo-animator
035d3880da04 render text with number of elements on screen
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
2
21
8a5a7aee69ce add description
Dennis C. M. <dennis@denniscm.com>
parents: 13
diff changeset
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).
8a5a7aee69ce add description
Dennis C. M. <dennis@denniscm.com>
parents: 13
diff changeset
4
24
bebd95177e96 add images
Dennis C. M. <dennis@denniscm.com>
parents: 21
diff changeset
5 ![Image 1](repo/1.png)
bebd95177e96 add images
Dennis C. M. <dennis@denniscm.com>
parents: 21
diff changeset
6 ![Image 2](repo/2.png
bebd95177e96 add images
Dennis C. M. <dennis@denniscm.com>
parents: 21
diff changeset
7
21
8a5a7aee69ce add description
Dennis C. M. <dennis@denniscm.com>
parents: 13
diff changeset
8 ## Compile
8a5a7aee69ce add description
Dennis C. M. <dennis@denniscm.com>
parents: 13
diff changeset
9
4
035d3880da04 render text with number of elements on screen
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
10 ```bash
13
074bde2db09a printing text with custom font but incorrect letters
Dennis C. M. <dennis@denniscm.com>
parents: 4
diff changeset
11 gcc main.c -lglut -lGL -lGLU -lm -I/usr/local/include/freetype2 -L/usr/local/lib -lfreetype
4
035d3880da04 render text with number of elements on screen
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
12 ```
21
8a5a7aee69ce add description
Dennis C. M. <dennis@denniscm.com>
parents: 13
diff changeset
13
8a5a7aee69ce add description
Dennis C. M. <dennis@denniscm.com>
parents: 13
diff changeset
14 ## To improve
8a5a7aee69ce add description
Dennis C. M. <dennis@denniscm.com>
parents: 13
diff changeset
15
8a5a7aee69ce add description
Dennis C. M. <dennis@denniscm.com>
parents: 13
diff changeset
16 Since `GLUT` is single-thread, I cannot call `glutPostRedisplay()` within `while` or `for loops` to redraw the screen in every
8a5a7aee69ce add description
Dennis C. M. <dennis@denniscm.com>
parents: 13
diff changeset
17 step of the selected sorting algorithm. I guess the solution is multi-threading, so I can perform the sorting in the second thread
8a5a7aee69ce add description
Dennis C. M. <dennis@denniscm.com>
parents: 13
diff changeset
18 and post notifications to the main thread to redraw the screen.
8a5a7aee69ce add description
Dennis C. M. <dennis@denniscm.com>
parents: 13
diff changeset
19
8a5a7aee69ce add description
Dennis C. M. <dennis@denniscm.com>
parents: 13
diff changeset
20 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,
8a5a7aee69ce add description
Dennis C. M. <dennis@denniscm.com>
parents: 13
diff changeset
21 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
8a5a7aee69ce add description
Dennis C. M. <dennis@denniscm.com>
parents: 13
diff changeset
22 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.
8a5a7aee69ce add description
Dennis C. M. <dennis@denniscm.com>
parents: 13
diff changeset
23
8a5a7aee69ce add description
Dennis C. M. <dennis@denniscm.com>
parents: 13
diff changeset
24 Let's say we selected `bubble sort`. Once you press `ENTER`, the process will be like this:
8a5a7aee69ce add description
Dennis C. M. <dennis@denniscm.com>
parents: 13
diff changeset
25
8a5a7aee69ce add description
Dennis C. M. <dennis@denniscm.com>
parents: 13
diff changeset
26 ```c
8a5a7aee69ce add description
Dennis C. M. <dennis@denniscm.com>
parents: 13
diff changeset
27 run = true;
8a5a7aee69ce add description
Dennis C. M. <dennis@denniscm.com>
parents: 13
diff changeset
28 bubble_sort();
8a5a7aee69ce add description
Dennis C. M. <dennis@denniscm.com>
parents: 13
diff changeset
29 glutPostRedisplay;
8a5a7aee69ce add description
Dennis C. M. <dennis@denniscm.com>
parents: 13
diff changeset
30 bubble_sort();
8a5a7aee69ce add description
Dennis C. M. <dennis@denniscm.com>
parents: 13
diff changeset
31 glutPostRedisplay;
8a5a7aee69ce add description
Dennis C. M. <dennis@denniscm.com>
parents: 13
diff changeset
32 bubble_sort();
8a5a7aee69ce add description
Dennis C. M. <dennis@denniscm.com>
parents: 13
diff changeset
33 glutPostRedisplay;
8a5a7aee69ce add description
Dennis C. M. <dennis@denniscm.com>
parents: 13
diff changeset
34
8a5a7aee69ce add description
Dennis C. M. <dennis@denniscm.com>
parents: 13
diff changeset
35 // Continue until the array is sorted
8a5a7aee69ce add description
Dennis C. M. <dennis@denniscm.com>
parents: 13
diff changeset
36 run = false;
8a5a7aee69ce add description
Dennis C. M. <dennis@denniscm.com>
parents: 13
diff changeset
37 ```