Я тут немного подумал....
Мой алгоритм требует запоминания пути, те откуда мы пришли в
данную точку.
Наверное это не обязательно.
Предлагаю следующее
Пусть надо построить изолинию для значения функции Fn
и пусть задана точность определения изолинии Epsilon
и шаг по координатам X,Y равный Delta
Тогда
1. Просматриваем все точки (X,Y) с шагом Delta и проверяем условие
abs(F(X,Y) - Fn) < Epsilon
Если нет- точку пропускаем
2. Если да - то проверяем на это же условие соседние 4 точки (X+-Delta, Y+-Delta)
Если да то проводим туда векторы из данной точки. LineTo(X+-Delta, Y+-Delta)
3. И так по всем точкам.
Изолинии нарисуются сами как совокупность векторов.
Этот вариант куда как алгоритмически проше чем первый.
Занятно
Если задать слишком грубое Epsilon то изолинии станут толстыми.
Если Epsilon мало- то в линиях могут появиться разрывы.
|