I'm building a program that does 2D graphing, and was wondering: How can I determine the default zoom level and x/y extents to display on screen, in such a way as to maximise the 'interesting' parts of a function that are shown?
"Interesting parts" would include:
- Minimums/maximums/plateaus,
- Parts of the space where you can actually see the function,
- Roots,
- Discontinuities,
- and anything else that helps understand what the function looks like and what it does.
I am not necessarily looking for a perfect solution, just something that works well for most common cases, hopefully without having to solve the equation the user entered.
Is there a general method I can use? Or a book/reference that might help? Thanks!
I am afraid this would be rather procedural approach. Calculate the 1st derivative and then the second derivative if possible . This would help determine max and min values of y. You could use newtons' root finding algorithm for roots and to determine discontinuities the obvious one would be finding roots of the denominator, though a more advanced algorithm may be available for this.