Algebra.com is an interactive website. Our solvers generate
formulae "on the fly". It is also a "people's math" website, where tutors who know math share their
knowledge by writing lessons, solvers, and tutor children on homework problems.
Besides that, our needs require a capacity of our software not only
to draw, but also ot "understand" expressions. That's needed for the
universal simplifier, as well as for plotting graphs.
All of that requires a simple way of potting dynamically generated
formulae, graphs, number lines, and geometric diagrams. That's what my
system does. A formula or a drawing can be described in a format that
everyone could understand. There is much less (in a normal case, none)
learning that's involved compared to TeX.
How it works
A tutor writes a solution, a lesson or a solver. He types in (or
has his/her solver generate) a formula, and marks it using a {{{ }}}
notation. Example:
As you know, a proportion is a relation such as {{{x/a=c/d}}}, where x is the unknown and a, c and d are constants.
My system would notice the curly brackets and replace the text between them with a call to a script
to plot the formula.
The script would do the following
- Check to see if the result is already available in the cache
- If not, parse the formula and understand what it means
- Determine the size of the formula and of each of its components
- Plot the formula. if graphs or animations are requested, draw them
- Return the generated image to the browser.
The result would be seen as
As you know, a proportion is a relation such as
, where x is the unknown and a, c and d are constants.
The tutor could even define an animation:
{{{
cartoon(
x/a=c/d,
x/a=c/highlight(d),
x*highlight(d)/a=c,
xd/highlight(a)=c,
xd = highlight(a)*c,
highlight( xd = a*c )
)
}}}
which would be displayed as: