Свободный перевод материала :
( не пиняйте на корявость - редактирование машинного перевода)
Что такое - поле потенциала?
Прежде, чем начать, мы должны договориться о некоторых определениях. Мы будем говорить о 'модуле' размера пиксел, который может свободно маневрировать во всех 8 направлениях со скоростью одного пикселя в среде. Эта среда ? 2х мерная карта, которая была разделена на квадраты, размером один пиксель каждый. В этом примере мы возьмем 100*100 квадратов и назовем это 'сеткой'. Границы - стены, через которые нельзя проникнуть и есть несколько 'объектов' на карте, которых нужно избежать. В теории, эти объекты могут иметь любую форму, но мы сосредоточимся на прямоугольниках.
Теперь, что мы еще должны делать - определить поле потенциала. В сущности, Вы можете думать об этом как о большой матрице. Каждый пиксель в 'сетке' представлен в матрице номером, говоря кое-что о состоянии. Так как наша окончательная цель состоит в том, чтобы найти путь от нашего стартового местоположения до нашего места назначения, логично предположить, что мы собираемся управлять и использовать эти числа как решающий фактор, чтобы двигаться по сетке.
В примерах ниже мы будем всегда пробовать понижать, насколько возможно, 'потенциал' нашего места назначения, и использовать мексимально высокий потенциал при создании стартового местоположения. Тогда мы можем, двигаться от пикселя до пикселя в сетке, перемещаясь только на те пикселы, которые имеют более низкий потенциал, чем тот, который наш модуль находится в данный момент. Чтобы избегать врезаться в препятствия, мы дадим им очень высокое потенциальное значение (выше чем самый высокий доступный пиксель в сетке), так что наш модуль никогда не будет соблазняться перемещаться на них.