Композиция деятельностей

Top  Previous  Next

Иногда бывает удобно приписать состоянию одновременно гибридную и непрерывную деятельности. В этом случае во всех состояниях гибридной деятельности будет выполняться также и непрерывная деятельность. Состояние с композицией деятельностей изображается толстой прерывистой линией (Рис.1):

 _img4

                         Рис.1

 

Модифицируем демо-пример "BallAndSpring" - сделаем пружину с переменным коэффициентом жесткости (k1 при нулевом сжатии и k2 при более чем половинном сжатии).

Для этого параметр K перетащим в раздел "Внутренние переменные" и введем параметры k1 и k2.

 

Переключение значения K можно реализовать различными способами: например, с помощью внутренних переходов в состоянии "MotionWithSpring" или

с помощью условного уравнения во внутреннем классе "MotionWithSpringModel".

 

Однако, наиболее наглядным способом будет создания композиции деятельностей.

Создадим внутренний гибридный класс "DynK" с картой поведения, реализующей логику переключения K (Рис.2).

 

DynK

                 Рис.2

 

Перетащим мышкой этот класс на состояние "MotionWithSpring" и на вопрос, хотим ли мы просто заменить деятельность в этом состоянии на экземпляр  "DynK" или

создать композицию деятельностей, выбрать второй вариант. Получим композицию " DynK+MotionWithSpringModel" и наглядную картину переключения коэффициента K (Рис.3).

 

BS_KH

                                         Рис.3