Региональный поиск метод квадрантного дерева / doc / errata
.docПриложение 1. Внесённые изменения
-
Устранена значительная утечка памяти.
В исходной программе некорректно использовалась динамическая память при реализации списков – структура «элемент списка» содержала указатель на данные, память под которые выделялась и освобождалась в совершенно разных местах. В результате некоторая часть памяти всё-таки не освобождалась, а так как работа со списками в программе ведётся довольно активная (перестройка дерева на ходу), утечка памяти была довольно заметной. Проблема решена помещением данных непосредственно в структуру элемента списка.
-
Реализовано автоматическое масштабирование рабочей области. Теперь рабочая область занимает максимально возможную площадь внутри окна.
Рабочая область имеет форму квадрата, сторона которого устанавливается равной ширине или высоте окна, в зависимости от того, что меньше.
-
Интерфейс переведён на русский язык и приведён в соответствие со спецификацией.
Изменению подверглось меню и панель инструментов. Пункты меню расположены в соответствии со спецификацией. При сохранении скриншота теперь можно указать имя файла. При генерации случайных точек можно указать количество.
-
Исправлено несколько мелких ошибок и удалены некоторые бесполезные части интерфейса.
Убрано мигание при перерисовке окна, исправлены мелкие недочёты.
Удалён редактор координат точек, а также части интерфейса, которые потеряли смысл при введении автоматического масштабирования (например, средство для задания размера ячеек).
-
Теперь после окончания поиска не подсвечивается уже обработанный квадрант.
Ошибка была в функции отрисовки. После окончания поиска подсвечивался предпоследний обработанный квадрант.