# How it works

Algebra ->  Graphical Expression Rendering -> How it works      Log On

 Expression Rendering Play and Practice! Examples How it works Help with Drawing Licensing

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

1. Check to see if the result is already available in the cache
2. If not, parse the formula and understand what it means
3. Determine the size of the formula and of each of its components
4. Plot the formula. if graphs or animations are requested, draw them
5. 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: