Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/yunusey/calculusvisualizations
Visualizations that can be helpful for Calculus students.
https://github.com/yunusey/calculusvisualizations
3d calculus-1 godot godot-engine godot4-3 visualization
Last synced: 2 months ago
JSON representation
Visualizations that can be helpful for Calculus students.
- Host: GitHub
- URL: https://github.com/yunusey/calculusvisualizations
- Owner: yunusey
- License: mit
- Created: 2024-06-01T03:18:19.000Z (8 months ago)
- Default Branch: main
- Last Pushed: 2024-06-17T04:25:46.000Z (8 months ago)
- Last Synced: 2024-08-23T15:28:21.715Z (6 months ago)
- Topics: 3d, calculus-1, godot, godot-engine, godot4-3, visualization
- Language: GDScript
- Homepage: https://calculus-visualizations.netlify.app/
- Size: 9.76 MB
- Stars: 5
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Calculus Visualizations
_[Calculus Visualizations](https://github.com/yunusey/CalculusVisualizations) is a tool for visualizing calculus concepts such as solids of revolution and solids of cross sections._
## Before Beginning
Probably you are wondering why the project is named something as awkward as **Calculus Visualizations**. Well, I want to remind you one of my favorite quotes:> There are only two hard things in Computer Science: cache invalidation and naming things.
> ~ Phil KarltonYeah, I couldn't think of a better name...
## Why?
I love [Godot](https://godotengine.org). I needed to create a project that needed to visualize AP Calculus BC concepts for future students at my high school, so I did this!## Installation
You can check the web version of the tool [here](https://calculus-visualizations.netlify.app/). There is nothing added in the desktop version, but of course, it will work faster locally. I didn't set up GitHub Actions for building the project for desktop, but you can easily open the project locally in Godot following these instructions:1. Clone the repository or [download the project as ZIP](https://github.com/yunusey/CalculusVisualizations/archive/refs/heads/main.zip) if you don't know how to use GitHub.
```bash
git clone https://github.com/yunusey/CalculusVisualizations.git
```
2. Import the project to Godot.## User Guide
* To move around, you should use `WASD` keys. The camera always rotates *around the origin*.
* To zoom in and out, you should use `Mouse Wheel Up` and `Mouse Wheel Down`. The value gets clamped down when you zoom in too much or zoom out too much (again, so that you don't lose track).
* If the menu takes too much space and you want to get rid of that, you can use `H` key to toggle the menu.
* To toggle full-screen mode, you should use `F` key.
* When you are entering equations, the standard mathematical format may not work as intended (e.g. `x^2` doesn't work). You should use [Godot's expressions](https://docs.godotengine.org/en/stable/tutorials/scripting/evaluating_expressions.html). Here are several examples you may want to consider:
- $x^2$ = `x * x` = `pow(x, 2)`
- $ln(x)$ = `log(x)`
- $\sqrt{x}$ = `sqrt(x)`
- $3x$ = `3 * x`## Parameters
### Disk & Washer Method
- **# Rectangles**: Changes the number of rectangles for a more or less precise version of the shape.
- **Shape Rot.**: Changes the rotation of the *entire shape*.
- **Disk Rot.**: Changes the rotation of the *disk*.
- **Shape Trans.**: Changes the transparency of the *entire shape* (useful to show the disk in the shape).
- **Disk Trans.**: Changes the transparency of the *disk*.
- **Coloring**: `Distinct` makes the disk red and the rest of the shape blue (so that you can *distinct* the disk from the rest of the shape). `Gradient` gives nice coloring to the rectangles for better visuals.
- $f(x)$: Changes the *upper function*.
- $g(x)$: Changes the *lower function* (by default, it is `0` so that you can visualize the disk method).
- $a$ and $b$: Represents the domain of the functions: $[a, b]$.### Shape Cross-Sections
- **Shapes**: Change the shape of the cross-sections (available options are `Squares`, `Equilateral Triangles`, `Isosceles Right Triangles`, and `Semi Circles`).
- **# Shapes**: Changes the number of disks/cross-sections in the shape.
- **Shape Trans.**: Changes the transparency of the *entire shape* (useful to show the disk in the shape).
- **Disk Trans.**: Changes the transparency of the *disk*.
- **Coloring**: `Distinct` makes the disk red and the rest of the shape blue (so that you can *distinct* the disk from the rest of the shape). `Gradient` gives nice coloring to the rectangles for better visuals.
- $f(x)$: Changes the function.
- $a$ and $b$: Represents the domain of the function: $[a, b]$.## References & Thanks
- [Godot Game Engine](https://godotengine.org) for *everything*.
- [MikulasZelinka's Godot Web Export Template](https://github.com/MikulasZelinka/godot-web-export-template) for automatic web builds.
- [Netlify](https://www.netlify.com/) for free hosting.