annotate README.md @ 40:50e6f49c32e8

Update README.md committer: GitHub <noreply@github.com>
author Dennis C. M. <dennis@denniscm.com>
date Sun, 16 Jul 2023 18:27:00 +0100
parents 8ed1256dd518
children b7bcb0a65cd3
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
40
50e6f49c32e8 Update README.md
Dennis C. M. <dennis@denniscm.com>
parents: 38
diff changeset
3 An interactive program to visualize sorting algorithms.
50e6f49c32e8 Update README.md
Dennis C. M. <dennis@denniscm.com>
parents: 38
diff changeset
4 I also made a video about this project [Youtube](https://youtu.be/KvOI88s-FsU)
31
61104b22a25d I think it is working now...
Dennis C. M. <dennis@denniscm.com>
parents: 28
diff changeset
5
61104b22a25d I think it is working now...
Dennis C. M. <dennis@denniscm.com>
parents: 28
diff changeset
6 This project is inspired by - off course - the video by Timo Bingmann called
61104b22a25d I think it is working now...
Dennis C. M. <dennis@denniscm.com>
parents: 28
diff changeset
7 [15 sorting algorithms in 6 minutes](https://www.youtube.com/watch?v=kPRA0W1kECg).
21
8a5a7aee69ce add description
Dennis C. M. <dennis@denniscm.com>
parents: 13
diff changeset
8
24
bebd95177e96 add images
Dennis C. M. <dennis@denniscm.com>
parents: 21
diff changeset
9 ![Image 1](repo/1.png)
26
2945f5898960 fix typo
Dennis C. M. <dennis@denniscm.com>
parents: 24
diff changeset
10 ![Image 2](repo/2.png)
24
bebd95177e96 add images
Dennis C. M. <dennis@denniscm.com>
parents: 21
diff changeset
11
31
61104b22a25d I think it is working now...
Dennis C. M. <dennis@denniscm.com>
parents: 28
diff changeset
12
21
8a5a7aee69ce add description
Dennis C. M. <dennis@denniscm.com>
parents: 13
diff changeset
13 ## Compile
8a5a7aee69ce add description
Dennis C. M. <dennis@denniscm.com>
parents: 13
diff changeset
14
4
035d3880da04 render text with number of elements on screen
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
15 ```bash
28
99592fae8ea1 add instructions
Dennis C. M. <dennis@denniscm.com>
parents: 26
diff changeset
16 mkdir build
99592fae8ea1 add instructions
Dennis C. M. <dennis@denniscm.com>
parents: 26
diff changeset
17 cd build
99592fae8ea1 add instructions
Dennis C. M. <dennis@denniscm.com>
parents: 26
diff changeset
18 cmake ..
99592fae8ea1 add instructions
Dennis C. M. <dennis@denniscm.com>
parents: 26
diff changeset
19 make
32
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
20 ```
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
21
33
576431310c8a fix format
Dennis C. M. <dennis@denniscm.com>
parents: 32
diff changeset
22 *Currently I've only tested this project on Linux. However, I would like to prepare it so
32
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
23 that it can be used on Mac and Windows. However, my cross-platform experience is almost
33
576431310c8a fix format
Dennis C. M. <dennis@denniscm.com>
parents: 32
diff changeset
24 non-existent. Maybe in the future I'll check how to do it*
32
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
25
33
576431310c8a fix format
Dennis C. M. <dennis@denniscm.com>
parents: 32
diff changeset
26 ## Run
32
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
27
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
28 To customize the program you can pass the following arguments.
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
29
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
30 ```bash
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
31 ./algo_animator WINDOW_WIDTH WINDOW_HEIGHT RECTANGLE_WIDTH SPACE_BETWEEN_RECTANGLES
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
32 ```
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
33
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
34 The default values are:
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
35
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
36 ```bash
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
37 WINDOW_WIDTH = 1920
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
38 WINDOW_HEIGHT = 1080
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
39 RECTANGLE_WIDTH = 5
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
40 SPACE_BETWEEN_RECTANGLES = 1
4
035d3880da04 render text with number of elements on screen
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
41 ```
32
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
42
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
43 Run the program in a window with width of 1920 pixels and height of 1080 pixels,
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
44 fit the screen with rectangles with width of 50 pixels, and add a space between
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
45 rectangles of 3 pixels.
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
46
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
47 ```bash
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
48 ./algo_animator 1920 1080 50 3
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
49 ```
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
50
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
51 ![Image 3](repo/3.png)
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
52
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
53
33
576431310c8a fix format
Dennis C. M. <dennis@denniscm.com>
parents: 32
diff changeset
54 ## Examples
32
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
55
33
576431310c8a fix format
Dennis C. M. <dennis@denniscm.com>
parents: 32
diff changeset
56 ### Normal mode
32
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
57
36
8425cf9337aa add videos
Dennis C. M. <dennis@denniscm.com>
parents: 35
diff changeset
58 Just run the program and press `ENTER`
8425cf9337aa add videos
Dennis C. M. <dennis@denniscm.com>
parents: 35
diff changeset
59 [Video.webm](https://github.com/denniscmartin/algo-animator/assets/66180929/f75366b4-b8ba-421e-8c1e-f43727a67b4f)
32
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
60
33
576431310c8a fix format
Dennis C. M. <dennis@denniscm.com>
parents: 32
diff changeset
61 ### Slow motion
32
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
62
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
63 Use `u` to increase the delay, then `ENTER` to run the algorithm
36
8425cf9337aa add videos
Dennis C. M. <dennis@denniscm.com>
parents: 35
diff changeset
64 *The delay is applied after each iteration*
37
0e2121235413 update readme
Dennis C. M. <dennis@denniscm.com>
parents: 36
diff changeset
65 [Video.webm](https://github.com/denniscmartin/algo-animator/assets/66180929/b3bcde87-2680-4667-98be-3b3946712254)
32
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
66
33
576431310c8a fix format
Dennis C. M. <dennis@denniscm.com>
parents: 32
diff changeset
67 ### Pause mode
32
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
68
36
8425cf9337aa add videos
Dennis C. M. <dennis@denniscm.com>
parents: 35
diff changeset
69 Press `ENTER` then `p`
37
0e2121235413 update readme
Dennis C. M. <dennis@denniscm.com>
parents: 36
diff changeset
70 [Video.webm](https://github.com/denniscmartin/algo-animator/assets/66180929/6a3ff80c-56dc-4b1a-a811-e3649fe2edde)
32
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
71
33
576431310c8a fix format
Dennis C. M. <dennis@denniscm.com>
parents: 32
diff changeset
72 ### Sequential mode
32
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
73
36
8425cf9337aa add videos
Dennis C. M. <dennis@denniscm.com>
parents: 35
diff changeset
74 Press `q` then press `ENTER` to visualize the algorithm step by step.
37
0e2121235413 update readme
Dennis C. M. <dennis@denniscm.com>
parents: 36
diff changeset
75 [Video.webm](https://github.com/denniscmartin/algo-animator/assets/66180929/743c00d8-5236-437d-85ad-b139611175ef)
36
8425cf9337aa add videos
Dennis C. M. <dennis@denniscm.com>
parents: 35
diff changeset
76
38
8ed1256dd518 finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents: 37
diff changeset
77 ## Notes
8ed1256dd518 finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents: 37
diff changeset
78
8ed1256dd518 finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents: 37
diff changeset
79 This project has not been designed to compare the speed of the algorithms side by side. The main objective is the visualization of the algorithms for educational purposes.