Graphing Calculator in Silverlight
This was initially an effort to port a WPF graphing calculator written by Bob Brown (from Microsoft) into Silverlight but soon after it became necessary to add several features to the code to make it more general and ready for practical purposes.
Here are some screenshots of the program:
The basic features of the calculator list below:
- Symbolic Parsing of Mathematical Expressions
- Symbolic Differentiation
- 2D XY Plots with Zoom
- 2D Parametric Plots with Zoom
- 3D Parametric Plots (Meshes) with Zoom/Rotate
- Multiple Root Finder
- Syntax highlighted Screen
- The function parser was developed by Bob Brown but it was limited to only a few basic mathematical functions. I have extended the parser to include hyperbolic functions, log and log10, sgn, abs, and the exponential function. I am working on adding inverse trigonometric functions.
- The graphing tools are pretty solid for 2D, 2D parametric and 3D parametric graphs. I have used Kit3D (an excellent piece of software by the way) to create 3D representation of the functions. The version of Kit3D that I am using included a module for directional lighting. A big thanks goes to Rafal at SilDev.Net for sharing his Kit3D experience with me. I have also implemented full mouse rotation (arcball) and zooming (mouse wheel). I am working on adding polar function plotting to the features list.
- The Bisection-NewtonRaphson algorithm is used to find the roots to functions. It is directly linked to the input function string (from the graphing menu) and it uses the symbolic function differentiation to evaluate the first derivative of the function with respect to x. It works for 2D XY function only.
- The syntax highlighter was written from scratch and is pretty complete. It supports C++, C#, Math, XAML, HTML and APDL (Ansys Parametric Design Language). The languages can easily be extended.