Показать сообщение отдельно
  #4  
Старый 22.01.2012, 11:39
chainik chainik вне форума
Начинающий
 
Регистрация: 30.06.2008
Сообщения: 140
Репутация: 8882
По умолчанию

Я тут немного подумал....

Мой алгоритм требует запоминания пути, те откуда мы пришли в
данную точку.
Наверное это не обязательно.

Предлагаю следующее

Пусть надо построить изолинию для значения функции 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 мало- то в линиях могут появиться разрывы.
Ответить с цитированием