Route-Map
Loading...
Searching...
No Matches
route.h
1#ifndef ROUTE_H
2#define ROUTE_H
3
4#include <QGraphicsScene>
5#include <QPolygonF>
6#include <QPointF>
7#include <vector>
8#include <cmath>
9#include <QFileDialog>
10#include <QGraphicsTextItem>
11#include <QXmlStreamReader>
12#include <QDebug>
13
14#include "obstacle.h"
15
19struct Node {
20 QPointF Point;
21 double cost;
33 Node(int x, int y, double cost, int heuristic, Node* p = nullptr)
34 : Point(x, y), cost(cost), heuristic(heuristic), parent(p) {}
35
36};
37
41class Route {
42public:
43 std::vector<QPolygonF> Polygons;
44 std::vector<Node> WayPoints;
45 QPolygonF Polygon;
46 int flag = 1;
55 void loadMapFromXml(const QString& fileName, QGraphicsScene* scene);
56
62 void findOptimalRoute(QPointF* start, QPointF* finish);
63
70 double distance(QPointF* current, QPointF* neighbor);
71
80 int heuristic(int x1, int y1, int x2, int y2);
81
88 int findCost(Node* current, Node* goal);
89
97 std::vector<Node> getNeighbors(Node* node, Node* goal, int n);
98
105 bool searchPoint(QPointF);
106
114 std::vector<Node> aStar(Node start, Node goal, int n);
115};
116
117#endif // ROUTE_H
Класс, представляющий препятствие на карте.
Definition obstacle.h:16
Класс для построения оптимального маршрута.
Definition route.h:41
double distance(QPointF *current, QPointF *neighbor)
Вычисляет расстояние между двумя точками.
Definition route.cpp:196
QPolygonF Polygon
Definition route.h:45
std::vector< Node > aStar(Node start, Node goal, int n)
Выполняет поиск оптимального маршрута с использованием алгоритма A*.
Definition route.cpp:120
std::vector< Node > getNeighbors(Node *node, Node *goal, int n)
Возвращает соседние узлы для заданного узла.
Definition route.cpp:205
int heuristic(int x1, int y1, int x2, int y2)
Вычисляет эвристическую оценку расстояния между двумя точками.
Definition route.cpp:88
Obstacle obstacle
Definition route.h:48
int flag
Definition route.h:46
std::vector< Node > WayPoints
Definition route.h:44
void loadMapFromXml(const QString &fileName, QGraphicsScene *scene)
Загружает карту из XML-файла.
Definition route.cpp:5
std::vector< QPolygonF > Polygons
Definition route.h:43
void findOptimalRoute(QPointF *start, QPointF *finish)
Находит оптимальный маршрут между двумя точками на карте.
bool searchPoint(QPointF)
Проверяет, содержит ли сцена точку.
Definition route.cpp:71
int findCost(Node *current, Node *goal)
Находит стоимость прохода от текущей точки к цели.
Definition route.cpp:97
Структура, представляющая узел в графе маршрута.
Definition route.h:19
double cost
Definition route.h:21
Node(int x, int y, double cost, int heuristic, Node *p=nullptr)
Конструктор для создания узла.
Definition route.h:33
Node * parent
Definition route.h:23
QPointF Point
Definition route.h:20
int heuristic
Definition route.h:22