https://github.com/edgomez/sdl3-julia-set-viewer
Draw the Julia set in a SDL3 application
https://github.com/edgomez/sdl3-julia-set-viewer
Last synced: 3 months ago
JSON representation
Draw the Julia set in a SDL3 application
- Host: GitHub
- URL: https://github.com/edgomez/sdl3-julia-set-viewer
- Owner: edgomez
- License: other
- Created: 2023-10-01T15:00:30.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2023-10-15T20:34:46.000Z (over 1 year ago)
- Last Synced: 2025-01-11T15:13:29.625Z (4 months ago)
- Language: C++
- Homepage:
- Size: 182 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# SDL3 Julia Set viewer
- [SDL3 Julia Set viewer](#sdl3-julia-set-viewer)
- [Description](#description)
- [Usage](#usage)
- [How to build](#how-to-build)
- [Pre-requisites](#pre-requisites)
- [Configuration and build](#configuration-and-build)
- [Working on the code](#working-on-the-code)
- [License](#license)## Description
A very simple SDL3 Julia Set Viewer.
It uses the function defined as $f(z) = z^{2} + c, \{z, c\} \in \mathbb{C}$
Everything is computed on CPU, mono-threaded... really not something worth looking at for performance :-)
.png?raw=true "Mandatory screenshot")
## Usage
The following keyboard keys can be used to explore the Julia Set being rendered:
- Page Up: zoom out
- Page Down: zoom in
- Up: move up
- Down: move down
- Right: move right
- Left: move left
- i: decrease the imaginary part of the julia c constant
- Shift+i: increase the imaginary part of the julia c constant
- r: decrease the real part of the julia c constant
- Shift+r: increase the real part of the julia c constant
- p: print the current Julia set constant and rendering position on console## How to build
### Pre-requisites
- CMake >= 3.23
- A C++11 compiler toolchain
- SDL3 libraryIf your system doesn't include `SDL3`, the repository contains everything required
to use the SDL3 source as a GIT submodule.```bash
git submodule update --init
```### Configuration and build
Then follow the typical `CMake` based project workflow.
```bash
cmake -B build -S . -G "Ninja Multi-Config"
cmake --build build --config Release --target sdl3-julia-set-viewer
```## Working on the code
You're free to work the way you like...
However, if you never made your mind about what you consider the best
editor/IDE, a very minimalistic `.vscode` subdirectory is included to
facilitate the editing/debugging of this code with `VSCode`.The following `VSCode` extensions might help you edit/build/debug this project:
- Microsoft C/C++ (ms-vscode.cpptools)
- CMake-Tools (ms-vscode.cmake-tools)
- CMake Language Support (josetr.cmake-language-support-vscode)
- markdownlint (davidanson.vscode-markdownlint)`.clang-format` files are provided for automatic indentation. This requires
a `clang-format` tool >= 16.0.## License
Licensed under MIT. For details see [LICENSE.md](./LICENSE.md) file.