annotate README.md @ 37:0e2121235413

update readme
author Dennis C. M. <dennis@denniscm.com>
date Thu, 29 Jun 2023 20:09:55 +0100
parents 8425cf9337aa
children 8ed1256dd518
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
31
61104b22a25d I think it is working now...
Dennis C. M. <dennis@denniscm.com>
parents: 28
diff changeset
3 An interactive program to visualize sorting algorithms.
61104b22a25d I think it is working now...
Dennis C. M. <dennis@denniscm.com>
parents: 28
diff changeset
4
61104b22a25d I think it is working now...
Dennis C. M. <dennis@denniscm.com>
parents: 28
diff changeset
5 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
6 [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
7
24
bebd95177e96 add images
Dennis C. M. <dennis@denniscm.com>
parents: 21
diff changeset
8 ![Image 1](repo/1.png)
26
2945f5898960 fix typo
Dennis C. M. <dennis@denniscm.com>
parents: 24
diff changeset
9 ![Image 2](repo/2.png)
24
bebd95177e96 add images
Dennis C. M. <dennis@denniscm.com>
parents: 21
diff changeset
10
31
61104b22a25d I think it is working now...
Dennis C. M. <dennis@denniscm.com>
parents: 28
diff changeset
11
21
8a5a7aee69ce add description
Dennis C. M. <dennis@denniscm.com>
parents: 13
diff changeset
12 ## Compile
8a5a7aee69ce add description
Dennis C. M. <dennis@denniscm.com>
parents: 13
diff changeset
13
4
035d3880da04 render text with number of elements on screen
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
14 ```bash
28
99592fae8ea1 add instructions
Dennis C. M. <dennis@denniscm.com>
parents: 26
diff changeset
15 mkdir build
99592fae8ea1 add instructions
Dennis C. M. <dennis@denniscm.com>
parents: 26
diff changeset
16 cd build
99592fae8ea1 add instructions
Dennis C. M. <dennis@denniscm.com>
parents: 26
diff changeset
17 cmake ..
99592fae8ea1 add instructions
Dennis C. M. <dennis@denniscm.com>
parents: 26
diff changeset
18 make
32
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
19 ```
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
20
33
576431310c8a fix format
Dennis C. M. <dennis@denniscm.com>
parents: 32
diff changeset
21 *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
22 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
23 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
24
33
576431310c8a fix format
Dennis C. M. <dennis@denniscm.com>
parents: 32
diff changeset
25 ## Run
32
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
26
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
27 To customize the program you can pass the following arguments.
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
28
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
29 ```bash
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
30 ./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
31 ```
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 The default values are:
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
34
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
35 ```bash
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
36 WINDOW_WIDTH = 1920
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
37 WINDOW_HEIGHT = 1080
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
38 RECTANGLE_WIDTH = 5
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
39 SPACE_BETWEEN_RECTANGLES = 1
4
035d3880da04 render text with number of elements on screen
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
40 ```
32
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
41
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
42 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
43 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
44 rectangles of 3 pixels.
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
45
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
46 ```bash
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
47 ./algo_animator 1920 1080 50 3
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
48 ```
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 ![Image 3](repo/3.png)
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
51
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
52
33
576431310c8a fix format
Dennis C. M. <dennis@denniscm.com>
parents: 32
diff changeset
53 ## Examples
32
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
54
33
576431310c8a fix format
Dennis C. M. <dennis@denniscm.com>
parents: 32
diff changeset
55 ### Normal mode
32
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
56
36
8425cf9337aa add videos
Dennis C. M. <dennis@denniscm.com>
parents: 35
diff changeset
57 Just run the program and press `ENTER`
8425cf9337aa add videos
Dennis C. M. <dennis@denniscm.com>
parents: 35
diff changeset
58 [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
59
33
576431310c8a fix format
Dennis C. M. <dennis@denniscm.com>
parents: 32
diff changeset
60 ### Slow motion
32
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
61
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
62 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
63 *The delay is applied after each iteration*
37
0e2121235413 update readme
Dennis C. M. <dennis@denniscm.com>
parents: 36
diff changeset
64 [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
65
33
576431310c8a fix format
Dennis C. M. <dennis@denniscm.com>
parents: 32
diff changeset
66 ### Pause mode
32
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
67
36
8425cf9337aa add videos
Dennis C. M. <dennis@denniscm.com>
parents: 35
diff changeset
68 Press `ENTER` then `p`
37
0e2121235413 update readme
Dennis C. M. <dennis@denniscm.com>
parents: 36
diff changeset
69 [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
70
33
576431310c8a fix format
Dennis C. M. <dennis@denniscm.com>
parents: 32
diff changeset
71 ### Sequential mode
32
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
72
36
8425cf9337aa add videos
Dennis C. M. <dennis@denniscm.com>
parents: 35
diff changeset
73 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
74 [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
75