
- •Задание.
- •Анализ предметной области. Выявление состава, структуры, и возможных состояний объекта.
- •Анализ характерного поведения.
- •Класс Вращающаяся часть тела
- •Класс Голова
- •Класс Человек
- •Выбор и обоснование программного решения.
- •Разработка интерфейса и состава необходимых средств в виде свойств, событий и методов.
- •Добавление иконки к компоненте, описания к компоненте, добавление компоненты на Палитру элементов. Добавление иконки компоненты
- •Добавление описания компоненты.
- •Добавление компоненты на палитру
- •Текст программы
Задание.
-
Создать компоненту, реализующую модель движущегося человека
Анализ предметной области. Выявление состава, структуры, и возможных состояний объекта.
Физическая модель,
движущегося в реальной жизни человека,
очень трудна. У него много составных
подвижных частей, который могут изменять
свое положение в трех измерениях. При
составлении математической модели,
было принято решение выделить только
основные части тела, характерные
человеку. А так же ограничиться только
двумя степенями свободы для вращающихся
частей тела.
К вращающимся частям тела относятся Руки, состоящие из плеч и предплечий, и Ног состоящие соответственно из бедер и голеней. Они представляют собой отрезки с заданным началом (центром вращения), углом и длиной (более подробное описание составляющих встретится ниже). Так же в тело человека входят Голова, представленная окружностью, и туловище, отображаемое как прямая линия. (см. рис 1).
Анализ характерного поведения.
Класс Вращающаяся часть тела
Вращающаяся часть
тела, как говорилось ранние, представляет
собой отрезок, положение которого
задается углом, начальной точкой и
длиной. Но для вращения так же характерно
направление «положительного»
движения: почасовой или против часовой
стрелки(под «положительным»
движение понимается движение, при
котором конечная точка отрезка станет
выше предыдущего положения()).
Это необходимо для того, чтобы при
команде такой как «Поднять_часть_тела_вверх»,
части тела, принадлежащие левой стороне
двигались по часовой стрелке (т.е.
увеличивая угол α),
а принадлежащие правой стороне,
соответственно против часовой (т.е.
уменьшая угол β)
(см. рис. 2)
y
x
правая часть тела
α
β
Рис 2. – Вращение правой и левой частей тела при «подъеме вверх»

левая часть тела
Любая вращающаяся часть тела имеет предельные углы: начальный и конечный, выход за которые не допустим. При этом учитывается направление «положительного» вращения. Иными словами, допустимый диапазон углов может быть разный при одинаковых начальном и конечном углах, но при разных направлениях. (см. рис. 3)
Можно так же заметить, что некоторые части тела связаны с другими, т.е. у них есть общая точка (например: плечо и предплечье). Что при движении одной части приводит к изменению другой.
Основываясь на выше сказанном, класс должен иметь следующее:
Поля:
-
Начальный точка (центр вращения)
-
Текущий угол
-
Длина
-
Начальный угол
-
Конечный угол
-
Угловая скорость (общее поле для всех экземпляров)
-
Направление движения
-
Связанная часть тела (экз. такого же класса)
Свойства:
-
Чтение/Изменение начального угла
-
Чтение/Изменение конечного угла
-
Чтение/Изменение текущего угла (при изменении проверяется допустимый диапазон углов, а так же угол приводится к виду когда он всегда положительный (>= 0 и <=360))
-
Чтение начальной точки
-
Чтение/Изменение координат начальной точки
-
Чтение конечной точки (расчет на основе угла и длины)
-
Чтение/Изменение угловой скорости
Функции:
-
Обновление координат связанной части тела
-
Проверка принадлежности угла допустимому диапазону
-
РРисоРисования части тела
-
Задание диапазона углов
-
Вращать по направлению «положительного» вращения
-
Вращать против направления «положительного» вращения