Skip to content

Commit 389a729

Browse files
author
Зелёный Андрей Сергеевич
committed
README.md
1 parent 7f3bf1f commit 389a729

1 file changed

Lines changed: 46 additions & 1 deletion

File tree

README.md

Lines changed: 46 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
Реализация алгоритма Дейкстры для поиска кратчайшего пути между двумя вершинами и оптимального маршрута на 3D поверхности с использованием очереди с приоритетом (PriorityQueue).
44

5-
## Использование
5+
## Пример 1 (Обход простого препятствия)
66

77
Исходный файл obstacle1.csv:
88

@@ -69,3 +69,48 @@ Coordinates of shortest path:
6969
(3, 4)
7070
Length of shortest path: 11,4852813742386
7171
```
72+
73+
Результат:
74+
75+
![screenshot1](https://github.com/greenDev7/DijkstraAlgorithm/blob/master/Examples/Obstacle1/shortestPath.png)
76+
77+
78+
## Пример 2 (Поиск оптимального пути на 3D-поверхности)
79+
80+
Program.cs:
81+
82+
``` csharp
83+
// Создаем несколько экземпляров параметров для Гауссиана для имитации гор (холмов) и одного оврага
84+
GaussianParameter gaussianParameter1 = new GaussianParameter(1.5, 0.5, 0.5, 2.0, 4.0);
85+
GaussianParameter gaussianParameter2 = new GaussianParameter(1.0, 0.5, 0.5, 7.5, 1.0);
86+
GaussianParameter gaussianParameter3 = new GaussianParameter(-0.5, 0.2, 1.0, 5.0, 0.5);
87+
GaussianParameter gaussianParameter4 = new GaussianParameter(1.0, 0.5, 0.8, 3.5, 2.2);
88+
89+
// Инициализируем граф
90+
Graph graph = new Graph(0.1, 0.1, 101, 51, 20.0, gaussianParameter1, gaussianParameter2, gaussianParameter3, gaussianParameter4);
91+
92+
// Создаем искуственные сооружения на карте
93+
graph.CreateBuilding(new Point2D(57, 20), 2, 20, 0.3);
94+
graph.CreateBuilding(new Point2D(64, 16), 3, 5, 0.3);
95+
graph.CreateBuilding(new Point2D(18, 4), 2, 5, 0.3);
96+
graph.CreateBuilding(new Point2D(10, 14), 4, 2, 0.4);
97+
graph.CreateBuilding(new Point2D(64, 29), 5, 2, 0.4);
98+
graph.CreateBuilding(new Point2D(14, 24), 5, 2, 0.3);
99+
100+
// Записываем получившуюся поверхность в файл
101+
string docPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
102+
graph.WriteSurfaceToFile(Path.Combine(docPath, "surface.txt"));
103+
104+
// Вычисляем кратчайший путь
105+
double shortestPathLength = 0.0;
106+
107+
Point2D startPoint = new Point2D(92, 7);
108+
Point2D goalPoint = new Point2D(14, 21);
109+
110+
List<Point2D> shortestPath = graph.FindShortestPathAndLength(startPoint, goalPoint, out shortestPathLength);
111+
112+
// Записываем найденный путь в файл
113+
WriteShortestPathToFile(shortestPath, graph, Path.Combine(docPath, "shortestPath.txt"));
114+
115+
Console.ReadLine();
116+
```

0 commit comments

Comments
 (0)