Небольшой экскурс в область физики:
Линия напряженности - линия, в каждой точке которой вектор напряженности электростатического поля является касательной к этой линии.
Эквипотенциальная поверхность - поверхность, потенциал электростатического поля в каждой точке которой одинаковый.
Для одиночного заряда эквипотенциальные поверхности являются сферами (в сечении окружностями, на рисунке они синего цвета), а линии напряженности - радиусами окружности (на рисунке они малинового цвета). Линии напряженности в любой точке перпендикулярны эквипотенциальной поверхности.
В других областях физики так или иначе всплывают эквипотенциальные поверхности и линии напряженности, так, планеты Солнечной системы двигаются по эквипотенциальным поверхностям "поля", в котором планеты являются частицами, заряд которых соответствует массе планет. Линии напряженности показывают направление силы гравитации, действующей на планету.
Теперь несколько слов о возможных алгоритмах.
Если поверхности строятся через точку, то в ней подсчитывается потенциал, затем просматриваются точки вокруг нее и находится точка с потенциалом, ближайшим к начальному. Далее программа перемещается в новую точку и процедура повторяется. Дополнительные ухищрения состоят в том, что надо запоминать точки, в которых программа уже побывала, чтобы она не возвращалась по уже пройденному пути.
В режиме поиска поверхностей с определенным потенциалом программа разбивает экран на небольшие прямоугольники, находит прямоугольник со средним потенциалом, ближайшим к искомому. Далее прямоугольник сканируется в каждой точке и находится точка с ближайшим потенциалом. Через эту точку чертится поверхность вышеописанным способом. Выбрасываются из дальнейшего рассмотрения прямоугольники, через которые прошла эквипотенциальная поверхность.
Вокруг каждого заряда на небольшом расстоянии от него по окружности выбирается некоторое количество "стартовых" точек. Количество таких точек пропорционально заряду. Из каждой стартовой точки считается вектор напряженности и программа перемещается в следующую точку в соответствии с этим вектором. Так продолжается до тех пор, пока линия не дойдет до какого-либо заряда или пока не выйдет за границы экрана.