#45; выходной параметр - дополнительный массив, необходимый при делении листа на новые узлы (тип TArrayOfPoints); - выходной параметр - счетчик элементов в дополнительном массиве (тип integer).· Локальные переменные- j - счетчик цикла (тип integer).· Словесный алгоритмПодпрограмма копирует значения точек из данного листа в дополнительный массив, одновременно увеличивая число его элементов, передаваемое в качестве параметра.· Подпрограмма используется функцией удаления точек из дерева при объединении 4-х листов в один.2.2 Модуль UnitMainForm2.2.1 Назначение В данном модуле описаны методы работы с Q-деревом точек 2.2.2 Функциональные требования, реализуемые модулем· Подсчет количества элементов в дереве· Отображение элементов дерева в виде точек на карте · Возможность выбора области карты для просмотра содержащихся в ней точек· Отображение точек заданной области карты в отдельном окне просмотра· Отображение координат выбранных точек2.2.3 Используемые компоненты|
№ | Имя компонента | Класс | Настраиваемые свойства | Значения | Обработанные события | | 1 | MainForm | TMainForm | BorderStyle | bsSingle | OnCreate; OnKeyDown | | | | | Caption | Q-дерево | | | | | | KeyPreview | True | | | 2 | MaxImage | TImage | - | - | OnCreate; OnMouseMove | | 3 | MinImage | TImage | - | - | - | | 4 | ShapeView | TShape | Brush | Style | bsClear | OnMouseDown; OnMouseMove; OnMouseUp | | | | | Pen | Color | clRed | | | № | Имя компонента | Класс | Настраиваемые свойства | Значения | Обработанные события | | 5 | SBtnCursor | TSpeedButton | Down | True | - | | | | | GroupIndex | 1 | | | 6 | SBtnPoints | TSpeedButton | GroupIndex | 1 | - | | 7 | ButtonDelete | TBitBtn | Caption | Удалить точку | OnClick | | | | | Enabled | False | | | | | | ShowHint | True | | | | | | Hint | Удалить выбранную точку | | | 8 | ButtonClear | TBitBtn | Caption | Удалить все | OnClick | | | | | ShowHint | True | | | | | | Hint | Удалить все точки дерева | | | 9 | StatusBar | TStatusBar | - | - | - | | | 2.2.4 Глобальные переменные и константы модуляКонстанты · Xmax = 1024 - ширина всего квадрата, отведенного под Q-дерево; - тип - целый; - область видимости - внутри и вне модуля; - используется в операциях вставки и удаления элементов для задания границ главного квадранта · K = 10.56 - отношение длины стороны окна выделения к длине стороны окна просмотра; - тип - вещественный; - область видимости - внутри модуля; - используется при выводе на карту изображений точек · R = 3 - радиус точки, изображенной на карте; - тип - целый; - область видимости - внутри модуля; - используется при выводе изображений точек · LightColor = clYellow - цвет подсветки точек; - тип - TColor; - область видимости - внутри модуля; - используется при выводе изображений точек · SelectColor = clRed - цвет выделенной точки; - тип - TColor; - область видимости - внутри модуля; - используется при выводе изображений точек · BackColor = clBtnFace - цвет фона карты; - тип - TColor; - область видимости - внутри модуля; - используется при выводе изображений точек. Переменные · Tree - указатель на корневой узел дерева; - тип - PNode; - область видимости - внутри модуля; - используется в подпрограммах, работающих с деревом. · X0, Y0 - начальные координаты указателя мыши при перемещении окна выделения; - тип - целый; - область видимости - внутри модуля; - используются при определении координат просматриваемой области карты · drag = false - индикатор перетаскивания окна выделения; - тип - логический; - область видимости - внутри модуля; - используется при определении координат просматриваемой области карты · PointCount = 0 - количество точек в дереве; - тип - целый; - область видимости - внутри модуля; - используется для определения числа точек в дереве · mainBounds, Query - координаты соответственно главного квадранта и выделенной области; - тип - TRect; - область видимости - внутри модуля; - используются при поиске и выводе изображений точек просматриваемой области · LightPoint, SelectedPoint - соответственно текущая и выделенная точки; - тип - TPoint; - область видимости - внутри модуля; - используются для выбора и удаления точек. 2.2.5 Подпрограммы модуля 2.2.5.1 Процедура DrawPoint· Процедура предназначена для вывода изображений точек на карту· Процедура является методом класса TMainForm· Параметры - параметр-константа - точка (тип TPoint); - входной параметр - цвет изображенной точки (тип TColor); · Локальные переменные- dopX, dopY - координаты точки относительно окна просмотра (тип integer). · Словесный алгоритмПроцедура вычисляет координаты отображаемой точки для каждой из карт (большой и малой) и рисует точку в виде эллипса радиусом R.2.2.5.2 Процедура ClearBackground· Процедура стирает предыдущее изображение на карте· Процедура является методом класса TMainForm· Параметры - входной параметр - компонент-карта (тип TImage); · Словесный алгоритмПроцедура закрашивает поверхность карты цветом фона BackColor.2.2.5.3 Процедура DrawRegion· Процедура предназначена для поиска и вывода изображений точек дерева в заданной области карты· Процедура является методом класса TMainForm· Параметры - параметр-константа - указатель на узел дерева (тип PNode);- параметр-константа - границы заданной области (тип TRect);· Локальные переменные- FindedPoints - список найденных точек (тип TList);- dopPoint - точка из списка (тип TPoint);- i - счетчик цикла (тип integer).· Словесный алгоритмПроцедура создает пустой список, копирует туда точки дерева, найденные в заданной области, и выводит их изображения на карты.2.2.5.4 Процедура FormCreate· Процедура предназначена для задания начальных координат областей и точек· Процедура является методом класса TMainForm· Параметры - входной параметр - объект, сгенерировавший событие (тип TObject)· Словесный алгоритмПроцедура устанавливает границы главного квадранта и выделенной области, начальные координаты для текущей и выбранной точек.2.2.5.5 Процедура ShapeViewMouseDown· Процедура предназначена для получения начальных координат указателя мыши перед началом перетаскивания выделяющего окна · Процедура является методом класса TMainForm· Параметры - входной параметр - объект, сгенерировавший событие (тип TObject);- входной параметр - индикатор нажатой кнопки мыши (тип TMouseButton);- входной параметр - индикатор нажатой клавиши (тип TShiftState);- входные параметры - координаты указателя мыши (тип integer)· Словесный алгоритмКоординаты указателя записываются в глобальные переменные X0 и Y0. Индикатору перетаскивания drag присваивается true.2.1.5.6 Процедура ShapeViewMouseUp· Процедура предназначена для установки значения соответствующего индикатора при окончании перетаскивания окна выделения· Процедура является методом класса TMainForm· Параметры - входной параметр - объект, сгенерировавший событие (тип TObject);- входной параметр - индикатор нажатой кнопки мыши (тип TMouseButton);- входной параметр - индикатор нажатой клавиши (тип TShiftState);- входные параметры - координаты указателя мыши (тип integer)· Словесный алгоритмИндикатору перетаскивания drag присваивается false.2.1.5.7 Процедура ShapeViewMouseMove· Процедура предназначена для перемещения окна выделения по малой карте и вывода на карту изображений точек из выделенной области· Процедура является методом класса TMainForm· Параметры - входной параметр - объект, сгенерировавший событие (тип TObject);- входной параметр - индикатор нажатой клавиши (тип TShiftState)- входные параметры - координаты указателя мыши (тип integer)· ПредусловияИндикатор перетаскивания должен быть равен true.· Локальные переменные- newLeft, newTop - новые координаты окна выделения (тип integer)· Словесный алгоритмПроцедура вычисляет новые координаты окна выделения и области просмотра с использованием глобальных переменных X0 и Y0; затем осуществляет поиск и вывод на карту изображений точек из новой области с помощью процедуры DrawRegion.2.1.5.8 Процедура MaxImageMouseMove· Процедура предназначена для отображения координат выделяемых точек в строке состояния и выделения их изображений на карте· Процедура является методом класса TMainForm· Параметры - входной параметр - объект, сгенерировавший событие (тип TObject);- входной параметр - индикатор нажатой клавиши (тип TShiftState);- входные параметры - координаты указателя мыши (тип integer)· Локальные переменные- Point - выделенная точка (тип TPoint);- Rect - область поиска точки в дереве (тип TRect);
Страницы: 1, 2, 3, 4
|