Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

77 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MathPlotter++

C++20 CMake Linux CI License

Math Plotter++ is an application for plotting mathematical functions, built with C++20, SFML for graphics, muParser for parsing mathematical expressions, and Dear ImGui for the user interface.

Features

Multiple Functions

Plot up to 15 mathematical functions simultaneously.

Functions

Themes

Switch between three color themes.

Themes

Navigation

Pan and zoom using the mouse while the coordinate grid dynamically adapts to the current zoom level.

Zoom

Function Customization

Change function colors and get immediate feedback for invalid expressions.

Customization

Architecture

Math Plotter++ is split into separate components, each responsible for a specific part of the application.

  • Application: manages the application lifecycle and coordinates components.
  • CameraController: handles graph navigation, zooming, and the viewport.
  • GridRenderer: renders the coordinate grid, axes, and labels.
  • FunctionRenderer: parses and renders mathematical functions.
  • UserInterface: manages the ImGui-based user interface.
  • Theme: manages application color themes.
  • ColorPalette: defines the colors used by the themes.

Build and Run

Math Plotter++ currently targets Linux.

Requirements

  • C++20 compatible compiler
  • CMake 3.22 or newer
  • Git

On Ubuntu and other Debian-based distributions, install the required tools and SFML system dependencies:

sudo apt update

sudo apt install \
    build-essential \
    cmake \
    git \
    libx11-dev \
    libxrandr-dev \
    libxcursor-dev \
    libxi-dev \
    libudev-dev \
    libfreetype-dev \
    libgl1-mesa-dev \
    libegl1-mesa-dev

Build

Clone the repository:

git clone https://github.com/bilyayeva/math-plotter.git
cd math-plotter

Configure and build the project:

cmake -S . -B build
cmake --build build

CMake automatically downloads and builds SFML, Dear ImGui, ImGui-SFML, and muParser.

Run

./build/mathplotter

License

This project is licensed under the terms of the MIT License.

About

Interactive C++20 function plotter with real-time graphing, navigation, and customization.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages