щоб візуально відрізняти початкову та кінцеву аудиторії, остання відзначається хрестиком. Одночасно на карті може бути зображений тільки один маршрут. Цей маршрут (початкова та кінцева аудиторія) автоматично відображається в рядку стану програми у форматі:
Маршрут: Початкова аудиторія -> Кінцева аудиторія.
Лістинг 2.2 - Функція відображення знайденого шляху
void drawPath () {= true;
відзначаємо аудиторію на карті
Audience * p=optPath; (p == NULL) return; (P-> plan);
{Задаємо парамети малювання}
/ / визначаємо на якому плані знаходиться поточна аудиторія
int n=StrToInt (AnsiString (AnsiString (p-> plan). c_str () [2])) - 1; m=StrToInt (AnsiString (AnsiString (p-> plan). c_str () [3])) - 1;
/ / збільшуємо карту для малювання шляху (ImWidth * getMash () / 100. - map11-> Width);
/ / переміщаємо так, щоб малювати від центру
int t=map11-> Height * 1.5; int l=map11-> Width * 2; (tn * map11-> Height, lm * map11-> Width, -> Height, map11-> Width); (myForm-> PanelKarta-> Width/2-p-> x,> PanelKarta-> Height/2-p-> y); sx, sy;// Поточні координати х і у
while (p!=NULL) {> Canvas-> MoveTo (p-> x, p-> y); (P-> next!=NULL) {
if (плани сусідніх аудиторій збігаються) {
sx=p-> x; sy=p-> y; p=p-> next; (Поточна координата х менше
координати х наступній аудиторії в дорозі) {
збільшуємо поточну координату х
while (поточна координата х менше
координати х наступній аудиторії в дорозі) {
переміщаємо карту, малюємо ділянку шляху,
збільшуємо поточну координату х
MovAllPicture (- 4, 0);
curMap-> Canvas-> LineTo (sx, sy);> Refresh (); Sleep (10); +=5;
}
} else if (історія х> х наступній аудиторії в дорозі) {
зменшуємо поточну координату
while (sx> p-> x) {
аналогічно.
}
}
{Те ж саме повторюємо для координати у}
curMap-> Canvas-> LineTo (p-> x, p-> y);
} else {
if (дві сусідні аудиторії знаходяться в одному корпусі) {
if (якщо сусідні аудиторії на різних поверхах) {
відзначаємо це на карті
if (якщо наступна аудиторія поверхом нижче) {
Повідомлення" Спустіться на поверх нижче;
myfloor -;
} else {
Повідомлення «Підніміться на поверх вище»;
myfloor + +;
}
завантажуємо карти відповідно з поточним поверхом
переходимо на наступну аудиторію
відзначаємо відповідним знаком на плані те,
що «прийшли» з іншого поверху
p=p-> next;
setImage (p-...