| File | Date | Author | Commit |
|---|---|---|---|
| docs | 2023-07-04 |
|
[8b786d] CMake for Windows |
| include | 2023-07-04 |
|
[c17b0c] Edit truncations (double -> float) |
| screenshots | 2023-06-26 |
|
[e5b1c1] New format of screenshots (chrono) |
| shaders | 2023-06-01 |
|
[fb3c9c] Rebuild |
| src | 2023-06-29 |
|
[969361] New parameter of command line: -save <filepath> |
| .gitignore | 2023-06-10 |
|
[ca96a5] README.md, decorating |
| CMakeLists.txt | 2023-07-04 |
|
[c7caa5] All |
| README.md | 2023-07-04 |
|
[c17b0c] Edit truncations (double -> float) |
| main.cpp | 2023-06-29 |
|
[969361] New parameter of command line: -save <filepath> |
| test.txt | 2023-06-25 |
|
[9b5da1] CMake. Screenshots |
Coursework. Mentor: Polevoy D. V.
Rules definitions (according to Paul Bourke):
| Character | Meaning |
|---|---|
| F | Move forward by line length drawing a line |
| f | Move forward by line length without drawing a line |
| + | Turn left by turning angle |
| - | Turn right by turning angle |
| [ | Push current drawing state onto stack |
| ] | Pop current drawing state from the stack |
Dependencies:
1. GLFW
2. GLAD
3. GLM
4. Boost
5. Stb
cmake -S . build -DCMAKE_TOOLCHAIN_FILE=<path_to_pacman>
cmake --build build --config Release
sudo cmake --install ./build
cd build/
./l_system_drawer -h
Available command line keys:
| Key | Meaning: format |
|---|---|
| -gen | Set a number of generations: integer |
| -len | Set a line length: double |
| -rot | Set a rotation angle: double |
| -axm | Set an axiom: string |
| -rule | Set a new rule: string->string |
| -file | Set LSystem from the file: filepath |
| -save | Set file to save screens: filepath |
Available keyboard keys:
| Key | Meaning |
|---|---|
| W | Camera up |
| S | Camera down |
| A | Camera left |
| D | Camera right |
| Q | Camera zoom |
| E | Camera move away |
| Z | Take a screenshot |
A composition of configuration .txt file (connected by command -file <absolute_path>):
<number of generations>
<length of line>
<rotation angle (degrees)>
<axiom>
<rule 1>
<rule 2>
...
<rule N>
Example 1. Command as follows...
./l_system_drawer -gen 7 -rot 22.5 -axm "F" -rule "F->FF-[XY]+[XY]" -rule "X->+FY" -rule "Y->-FX"
... will produce window with this plant:

Example 2. Another one:
./l_system_drawer -gen 10 -rot 120 -axm "F+F+F" -rule "F->F-F+F"

Example 3. You can specify the absolute path to the configuration file:
./l_system_drawer -file "<absolute path to file>"

Technical documentation is here, generated by Doxygen.
You can create documentation yourself, here is a list of possible commands (from install directory bin):
doxywizard Doxyfile
cd l_systems_docs/latex
pdflatex refman.tex
After these actions, you will have a file refman.pdf in this directory.