- •Задание.
- •Анализ предметной области. Выявление состава, структуры, и возможных состояний объекта.
- •Анализ характерного поведения.
- •Класс Вращающаяся часть тела
- •Класс Голова
- •Класс Человек
- •Выбор и обоснование программного решения.
- •Разработка интерфейса и состава необходимых средств в виде свойств, событий и методов.
- •Добавление иконки к компоненте, описания к компоненте, добавление компоненты на Палитру элементов. Добавление иконки компоненты
- •Добавление описания компоненты.
- •Добавление компоненты на палитру
- •Текст программы
Класс Голова
Голова представляет собой окружность некоторого радиуса с определенными координатами центра.
Класс Голова должна иметь:
Поля:
-
Радиус;
-
Центр;
И у нее должна быть следующая функция:
-
Функция рисования себя.
Класс Человек
Как известно, у человека две руки и две ноги, каждые из которых состоят из двух связанных вращающихся частей тела (плечо и предплечье, бедро и голень). Итого таких частей всего 8. А так же голова, представленная отдельным классом, и туловище. В виду малой возложенной функциональности на туловище, было решено не выделять его как отдельный класс, а просто графически представить как элементарный отрезок.
Класс Человек состоит из:
Поля:
-
Координаты начальной точки туловища
-
Длина туловища
-
Цвет
-
Экземпляры класса Вращающаяся Часть Тела (8 шт.)
-
Экземпляр класса Голова
Функции: Рисование человека
Выбор и обоснование программного решения.
Наша компонента наследуется от класса UserControl, который в свою очередь порождается от класса Control. Это означает, что мы имеем дело с элементом управления. UserControl предоставляет контекст графического устройства для рисования как Graphics.
Компонента наследуется от класса UserControl, но это не означает, что ее нельзя реализовать, унаследовав от другого класса. Например, можно воспользоваться готовым классом компоненты Component, содержащий «минимальный» интерфейс. Но данный класс не имеет собственного Graphics. То есть данный класс не может себя прорисовывать без помощи извне. А наш класс должен иметь пользовательский интерфейс (то есть являться визуальным).
Таким образом, можно заключить, что наследование от класса UserControl хоть и не является единственно верным путем к созданию компоненты, но в тоже время такой способ имеет право на существование.
Теперь перейдем непосредственно к разработке.
Наша компонента будет состоять из простейших геометрических фигур: окружностей и прямых.
Создаваемая компонента представляет собой класс, порождённый от UserControl и включающий в себя иерархию классов, показанную выше.
Разработка интерфейса и состава необходимых средств в виде свойств, событий и методов.
Для отрисовки компоненты используем обработчик события
private void ManControl_Paint(object sender, PaintEventArgs e) предоставленный в классе UserControl специально для воспроизведения изображения оконных компонент.
Для взаимодействия с пользователем используются следующие функции:
public void GetLeftArmUp() – поднять левую руку
public void GetLeftLegUp() – поднять левую ногу
public void GetRigthLegUp() – поднять правую ногу
public void GetRightArmUp() – поднять правую руку
public void GetLeftArmDown() – опустить левюу руку
public void GetLeftLegDown() – опустить левую ногу
public void GetRigthLegDown() – опустить правую ногу
public void GetRightArmDown() – опустить правую руку
Свойства:
public double dAngle – задает угловую скорость вращения
public Color Color – задает цвет отображаемого человека

