| 
				
					 | 
			há 7 anos atrás | |
|---|---|---|
| png++-0.2.9 | há 7 anos atrás | |
| results | há 7 anos atrás | |
| tests | há 7 anos atrás | |
| .gitattributes | há 7 anos atrás | |
| .gitignore | há 7 anos atrás | |
| Makefile | há 7 anos atrás | |
| README.md | há 7 anos atrás | |
| graphmap.h | há 7 anos atrás | |
| img.h | há 7 anos atrás | |
| output28_1.bmp | há 7 anos atrás | |
| output29.bmp | há 7 anos atrás | |
| output30.bmp | há 7 anos atrás | |
| roadSearcher.cpp | há 7 anos atrás | |
| roadSearcher.sln | há 7 anos atrás | |
| roadSearcher.vcxproj | há 7 anos atrás | |
| roadSearcher.vcxproj.filters | há 7 anos atrás | |
| stdafx.cpp | há 7 anos atrás | |
| stdafx.h | há 7 anos atrás | |
| targetver.h | há 7 anos atrás | |
| test28.bmp | há 7 anos atrás | |
| test29.bmp | há 7 anos atrás | |
| test30.bmp | há 7 anos atrás | 
Абстрактный класс картинки. Представляет собой структуру вроде двумерного массива, в каждой ячейке которого может хранится любая информация, которую можно задавать и менять.
 int width, height;  - широта и высота 
 Row   *data;  - массив строк данных, которые хранятся в ячейке 
 Settings settings;  - настройки для разных типов данных (если это будет работа с картинкой) 
  
 Img(int width, int height) - конструктор с укозанием широты и высоты 
 Img() - конструктор по умолчанию  
 init()  - инициализация картинки(данных) по широте и высоте 
Row  operator[](int n) - перегрузка оператора [] для возможности обращения к каждой строке данных
Вспомогательный класс, для реализации структуры 2х мерного массива с данными
int width; - ширина строки
 T** pixel;  - ячейка с хранимыми данными
Row() - конструктор по умолчанию
 Row(int width) - конструктор с шириной, инициализация по ширине
 T* operator[](int n) - перегрузка оператора [] для возможности обращения к каждой ячейке данных
Хранит информацию о пикселе картинки( параметр для класса Img) 
int r; - красный цвет
int g; - зелены цвет
int b; - синий цвет
int a; - канал
конструктор (r, g, b),
 конструктор (), 
конструктор (r, g, b, a)
struct Settings
{
    //настройки для bmp файла
    unsigned int imgWidth = 500, imgHeight = 500;
    unsigned char signature[2] = { 'B', 'M' };
    unsigned int fileSize = 14 + 40 + imgWidth * imgHeight * 3;
    unsigned int reserved = 0;
    unsigned int offset = 14 + 40;
    unsigned int headerSize = 40;
    unsigned int dimensions[2] = { imgWidth, imgHeight };
    unsigned short colorPlanes = 1;
    unsigned short bpp = 32;
    unsigned int compression = 0;
    unsigned int imgSize = imgWidth * imgHeight * 3;
    unsigned int resolution[2] = { 2795, 2795 };
    unsigned int pltColors = 0;
    unsigned int impColors = 0;
    int lineImgSize
};
void read() - считывание bmp картинки 
void write() - запись bmp картинки 
BMP() {} - конструктор по умолчанию;
BMP img;
cout << "Start read...";
img.read("test30.bmp");//считываем
img[4][5]->r = 180; //задаем пикселю с индексом 4-5 значение красного 180
img.write("output.bmp");//записываем
cout << "End." << endl;
bool vizited; - посещен ли узел
 int w; - вес узла (или его возвышенность)
 int distation; - расстояние до нужной точки (или выхода)
 int dirCount; - количество возможных направлений
 Pixel data; - данные внутри узла
 Position pos; - позиция узла
 Node *branches[8]; - соседние узлы
 void calcWeight - подсчет веса узла 
calcDistation(Node previos) - рассчет расстояния относительно переданного предыдущего узла
operator < (const Node &v2) const - перегрузка операторов больше меньше, для очереди с приорететом 
Наследник Img (чтобы была возможность обратится к каждому узлу через индексы)
BMP map; - картина на основе которой строится граф
 Position start; - позиция откуда начнется поиск
 Graph(BMP map) - конструктор дерева по картинке (собирает из картинки граф)
  calcdijkstra(Position start) - рассчет расстояний до каждого узла дерева от точки start
  drowRoad(Position end) - рисует дорогу от начальной точки до точки end;
BMP img;
cout << "Start read...";
img.read("test29.bmp");//загружаем картинку
//img.write("output.bmp");
cout << "End." << endl;
cout << "Building tree...";
Graph map(img); //строим древо по этой картинке
cout << "End." << endl;
try 
{ 
 cout << "Drowing roud...";
 map.calcdijkstra(Position(220, 220)); //считаем все маршруты от точки 220 220
 BMP out = map.drowRoad(Position(860, 860)); //прокладываем маршрут к точке 860 860
 out.write("output30.bmp"); //записываем получившийся результат
 cout << "End." << endl;
}
catch (char* error) // если маршрут не найдет выводим ошибку
{
    cout << error <<endl;
}