Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Отчет по учебной практике.doc
Скачиваний:
5
Добавлен:
27.09.2019
Размер:
565.76 Кб
Скачать

3. Проектирование

3.1. Проектирование интерфейса.

Для проектирования интерфейса данного программного средства используются следующие стандартные визуальные компоненты:

Button (кнопка) – компонент вкладки Палитры Компонентов Standard. При нажатиях на кнопки выполняются действия, описанные в соответствующих событийных процедурах (создание объекта, вращение, перемещение и т.д.);

Edit (поле ввода) – компонент вкладки Standard.Поля ввода применяются в программе для задания множества необходимых параметров (параметров точки наблюдения, параметров параллельного переноса, коэффициентов масштабирования объекта);

ListBox (выпадающий список) – компонент вкладки Standard. Выпадающий список необходим для выбора пользователем значения параметра из множества указанных значений в списке (выбора толщины линий);

ColorBox (выпадающий список цветов) – компонент вкладки Additional. Практически то же самое, что и ListBox, только элементами списка являются цвета. В данной программе применяется для выбора цвета линий из множества указанных цветов в списке.

Label (надпись) – компонент вкладки Standard. Надписи размещаются на форме для создания более понятного интерфейса, они объясняют для чего нужны те или иные элементы интерфейса;

XPManifestкомпонент вкладки Win32. При помещении данного компонента на форму все элементы интерфейса при запуске программы приобретают вид, характерный для элементов ОС Windows XP.

Image (контейнер изображений) – компонент вкладки Additional. Этот компонент применяется для помещения на форму некоторого изображения. В данной программе при указании параметров точки наблюдения необходимо изображение взаимного положения систем мировых и видовых координат (рис. 1).

Все данные и методы данных компонентов описаны в соответствующих классах: TButton, TEdit, TListBox, TColorBox, TLabel, TImage. Данные и методы формы (Form) описаны в классе TForm. Все эти классы наследуются от класса TControl (базовый класс всех видимых компонентов), который в свою очередь наследуется от базового класса-предка всех компонентов и объектов Delphi TObject.

3.2. Проектирование структуры данных.

В соответствии с требованием к структуре данных были разработаны следующие классы: TMainForm, TSettingsForm, TSurface.

TMainFormкласс, описывающий главную форму (окно) программы. На рис.3 представлена диаграмма этого класса.

TSettingsForm – класс, описывающий форму (окно) настойки программы. На рис. 4 представлена диаграмма этого класса.

Оба этих класса наследуются от класса TForm.

TSurface – класс, описывающий трёхмерную каркасную модель полусферы и её аффинные преобразования. На рис. 5 представлена диаграмма этого класса.

Класс TSurface напрямую наследуется от класса TObject поскольку стандартный класс Delphi TChart, обеспечивающий работу с 3D-графикой имеет весьма низкие возможности. А именно, объекты являются статическими, а их визуализация оставляет желать лучшего.

Хорошо известный пакет OpenGL является внешним по отношению к Delphi. Использование его ресурсов возможно как из Visual C++, так и Delphi. Но для того, чтобы сделать это, необходимо затратить определённое время на изучение OpenGL. Кроме того, не всегда OpenGL доступен для применения. Поэтому был разработан собственный класс TSurface, который подробно описан ниже.

Данные класса:

Bmp1 (TBitMap) - битовая матрица, на которой визуализируется 3D-объект;

Color (TColor) – цвет линий каркаса полусферы;

d (Integer) – расстояние наблюдателя до экранной плоскости;

f (Integer) – угол F на рисунке 2;

v (Integer) – угол V на рисунке 2;

r (Integer) – длина радиус-вектора R на рисунке 2;

rad (Integer) – радиус полусферы;

shift (Integer) – сдвиг системы координат, связанной с левым верхним углом битовой матрицы;

width (Integer) – ширина линий каркаса полусферы;

Xw, Yw, Zw (array of real) - массивы мировых координат вершин каркаса.

Методы класса:

Create – конструктор класса;

Destroy - деструктор класса;

world – инициализация мировых координат множества вершин объекта – каркасной модели поверхности, в соответствии с её уравнением;

transform_draw – преобразование мировых координат в видовые и экранные (видовое и перспективное преобразования);

transfer – пространственный перенос;

rotate_OZ - вращение вокруг оси OZ;

rotate_OY – вращение вокруг оси OY;

rotate_OZ – вращение вокруг оси OX;

rotate_OZp – вращение вокруг оси, параллельной оси OZ;

simmetr_OXY – отражение относительно плоскости OXY;

simmetr_OXZ – отражение относительно плоскости OXZ;

simmetr_OYZ – отражение относительно плоскости OYZ;

scale – масштабирование.

Рис. 4. Диаграмма класса TSettingsForm

Рис. 3. Диаграмма

Класса TMainForm

Рис. 5. Диаграмма класса TSuface

Технология объектно-ориентированного программирования в Delphi предписывает избегать прямого обращения к полям, создавая вместо этого соответствующие свойства. Это упорядочивает работу с объектами, изолируя их данные от непосредственной модификации. Ниже перечислены свойства класса TSurface скрывающие cсоответствующие данные v, f, r, shift, d, color, width, rad: FirstAngle, SecondAngle, Vector, Axis, ScrLength, Colors, Widths, Radius.