Graphorama is a function plotting application built using C# and WPF, utilizing the OxyPlot library for plotting mathematical functions. The app supports real-time graphing, multiple functions, and provides interactive features like zoom, graph clearing, and limit adjustments.
https://cloud-1ssjxizmq-hack-club-bot.vercel.app/02025-01-01_01-32-43.mp4 (video demo)
- Plot mathematical functions with support for a variety of operations
- Real-time graphing for dynamic function plotting
- Clear and reset graph functionality
- Adjustable axis limits
- Supports standard mathematical functions (sin, cos, tan, log, etc.)
- Input validation for safe expression evaluation
- Real-time speed control for faster/slower plotting
To run Graphorama, you'll need:
- Visual Studio 2019 or later (for compiling and running the code)
- .NET Framework (compatible version based on the project setup)
- 
Clone the repository to your local machine: git clone https://github.com/UltimaCodes/Graphorama.git 
- 
Open the project in Visual Studio. 
- 
Build and run the project using Visual Studio (use the "Start" button or press F5).OR 
- 
Extract all files from the latest release zip file to a folder on your computer. 
- 
Double-click Graphorama.exeto launch the application.
Once the application is running, you will see:
- A graphing area where mathematical functions will be plotted.
- An input box to enter the function you wish to plot.
- A list of previously entered functions.
- Buttons for adding, clearing, and interacting with the graph.
You can input standard mathematical functions and operations. Here's how:
- Addition: 2x + 3
- Subtraction: x - 5
- Multiplication: 2 * x
- Division: x / 2
- Sine: sin(x)
- Cosine: cos(x)
- Tangent: tan(x)
- Arcsin (inverse sine): asin(x)→ type asArcSin(x)
- Arccos (inverse cosine): acos(x)→ type asArcCos(x)
- Arctan (inverse tangent): atan(x)→ type asArcTan(x)
- Square Root: sqrt(x)
- Logarithm: log(x)
- Exponential: exp(x)
- 
Enable Real-Time Plotting: - Click on the "Real-Time: Off" button to toggle real-time graphing.
- When enabled, the function will be plotted dynamically as you input it.
- You can control the speed of real-time plotting using the Real-Time Speed input field (values between 1 and 256).
 
- 
Input and Plot Function: - Type your function in the input box (e.g., sin(x)).
- Click Add Expression to plot the function on the graph.
 
- Type your function in the input box (e.g., 
- Adjust X-axis Limits: Enter your desired X Min and X Max values in the respective input boxes and click Update Limits.
- Zoom Reset: Click the Reset Zoom button to reset the graph zoom to default.
- To remove a function from the graph, select it from the list and press the Delete or Backspace key.
- If you input an invalid function, an error message will be shown prompting you to correct the equation.
- Ensure proper syntax, such as matching parentheses and valid operators.
- Plot a sine wave: sin(x)
- Plot an inverse sine function: ArcSin(x)
- Plot a logarithmic function: log(x)
- Plot 2x + 3:2x + 3
Feel free to fork the repository and submit pull requests with any improvements or fixes.
- Fork the repository
- Create a new branch (git checkout -b feature-name)
- Commit your changes (git commit -am 'Add new feature')
- Push to the branch (git push origin feature-name)
- Open a pull request
This project is licensed under the MIT License - see the LICENSE file for details.