Курсовая работа: Поиск кратчайшего пути в многоугольнике
matriza();
wGraph.find(matr,nachialo,konez,n);
for i:=0 to n-1 do
for J:=0 to n-1 do
if a[i,j].Brush.Color=rgb(0,255,0)
then a[i,j].Brush.Color:=clGreen;
Invalidate;
end;
//процедура рисования кратчайшего пути
procedure TForm1.DrawWay;
var i,ik,jk:integer;
begin
for i:=1 to wGraph.ny do begin
ik:=wGraph.yWay[i].x;
jk:=wGraph.yWay[i].y;
a[ik,jk].Brush.Color:=RGB(0,255,0);
end;
Интерфейс(руководство пользователю)
При разработке приложения применялся принятый в среде Delphi объектно-ориентированный подход реализации интерфейса. При реализации алгоритмов обработки данных использовался структурный подход при проектировании к написании программ приложения.
Окно интерфейса приложения представлено на рисунке. Прежде всего заполняются поля размер и кол-во опорных точек.
Далее по нажатию кнопки старт формируется поле Shape’ов заданной размерности. Кликами мыши выбираются опорные Shape в кол-ве заданном в поле «кол-во опорных точек».
После выбора всех опорных точек отображается построенная на них область. Теперь необходимо установить начало и конец сначала нажав на соответствующую кнопку а затем на нужный Shape.Повторным нажатием на одну из этих кнопок можно изменить положение начала и конца.
По нажатию кнопки «Расчёт» будет построен кратчайший путь, но только если между данным началом и концом он вообще существует. Для перерасчёта с изменением начала и конца следует их заново установить и нажать кнопку «Расчёт». Для изменения области нужно нажать кнопку «Новый» и приступить ко всем изложенным операциям сначала.
Тестовый пример программы
Положим размер поля равным 20 и кол-во опорных точек 10.Построим вогнутый многоугольник. Выберем начало и конец так, чтобы по прямой между ними имелись точки, не принадлежащие области.