Advanced Grapher
Мощная и простая в использовании программа для построения графиков и их анализа. Поддерживает построение графиков функций вида Y(x), X(y), в полярных координатах, заданных параметрическими уравнениями, графиков таблиц, неявных функций (уравнений) и неравенств. До 30 графиков в одном окне. Вычислительные возможности: регрессионный анализ, нахождение нулей и экстремумов функций, точек пересечения графиков, нахождение производных, уравнений касательных и нормалей, численное интегрирование. Большое количество параметров графиков и координатной плоскости. Имеет возможности печати, сохранения и копирования графиков в виде рисунков, многодокументный интерфейс.
При установке программы выбрать Русский язык для интерфейса
Если имеются ввиду линии уровня, то есть, например, f(x,y) = 0, то, по-простому, напрмер, так:
1. Делаешь в области сетку, потом пробегаешь по каждой ее ячейке. 2. Если во всех узлах ячейки значения функции имеют один знак, то пропускаешь. 3. Если знаки отличаются, то берешь значения функции в узлах, интерполируешь их как-нибудь, например кусочно-линейно (если ячейка --- треугольник) или билинейно (если ячейка прямоугольник). Остается определить отрезок, по которому пересекается интерполянт (который есть функция заданной простой структуры) и плоскости ячейки, а это легко.
Ну или посмотри исходники contour в Matlab или Octave.