» «Наука. Мысль: электронный периодический журнал».® Научный журнал ® No 12. - 2016 о «5с1епсе. ТбоивНе: е1ескгоп!с репо@с ]оигпа!» е всепибс е-оигпа! ® - \ой Матх: 5ауе (МУтпа Мепате) » сохранение в файл матрицы осуществляется в случае, если файл успешно создан на диске: РШЕ *!е = Тореп (Пепате, «\уб»). Для сохранения матрицы сначала записыва- ем заголовок файла ВМН (\//теВтПНеадег(тет)) и сохраняем матрицу или в опера- тивную память (если тетМодае == |МЕМОКУ) или в файл на жесткий диск (если тетМоде == No10СЕ). - моа Майих: Са!\сиате() »> при расчете матрицы первоначально создаем матрицу с размерами равными разме- рам карты (Сгеа!е (рКапа->т_деобоипаз)), далее подсчитываем количество точек у всех топографических объектов, участвующих в расчете (это нужно, чтобы выводить полосу прогресса). Для формирования матрицы превышений, перебирая каждый объект каждого слоя карты, получаем высоту объекта. Если значение высоты не рав- но нулю, добавляем значение в формируемую матрицу превышений (с помощью функции АдаНеки!). При этом в матрице заполняются все клетки, покрываемые пло- щадью рассматриваемого объекта. - мО10 Майтх: АдаНеюи! (МТоробуес! “ро, $пог! пет!) » для добавления высоты топографического объекта в матрицу первоначально необ- ходимо — проверить тип — топографического объекта (1ро->т_р/пак->Се{\Уах()- >СейПуре()). Если объект площадной, то выполняется добавление высоты площадно- го объекта в матрицу (АдаР1юОбес! (1ро, пеи!)), если объект линейный, то выполня- ется добавление высоты линейного объекта в матрицу (Ада-нпеОбес! (1ро, петдИ?)), если объект точечный, то сравниваем текущую высоту с высотой в ячейке, если те- кущая высота больше (пед! > Се!Нею!ИК(рот?), то устанавливаем в ячейке текущую высоту (Зе!НеюМ! (роит\, пе1д!?)) - \о!) Майтх: Адс!пеОбес! (МТороб)ес! “!ро, 5пот петдИ?) » добавление высоты линейного топографического объекта в матрицу осуществляется следующим образом: в цикле по сегментам линейного объекта проверяем покрывает ли ячейка матрицы сегмент, если покрывает, то устанавливаем в ячейке текущую вы- соту (Зе!Ненц!! (рот!, пе!!)), если не покрывает, то рассчитываем количество ячеек покрывающих данный сегмент, и в цикле для каждой ячейки устанавливаем текущую высоту топографического объекта. - \о!0 Майтх: АдаР1оОбес! (МТоробуес! *!ро, 5пом! пе1дИ!) » добавление высоты площадного топографического объекта в матрицу осуществляет- ся следующим образом: сначала создается локальная матрица топографического объекта (по размеру охватывающего прямоугольника объекта). Затем в локальной матрице площадного объекта заполняются ячейки, покрывающие контур объекта - используется функция Ада!пеОбуес! (1ро, ВОКОЕЕ). Затем заполняются остальные ячейки локальной матрицы с использованием функции ЕМ (МРАггау *аг). На послед- нем этапе в цикле по всем ячейкам сформированной локальной матрицы все «внут- ренние» (не-ООТУЮЕ) ячейки заполняются значениями высоты площадного объекта, но только в том случаи если текущее значение высоты больше значения высоты в ячейке. Г (пею! > Се!Нею{(рот!)) ъе!Нею!! (рот', пе1ди!); уо!@ РИ (МРААггау *аг) 81