Композиция деятельностей |
Top Previous Next |
Иногда бывает удобно приписать состоянию одновременно гибридную и непрерывную деятельности. В этом случае во всех состояниях гибридной деятельности будет выполняться также и непрерывная деятельность. Состояние с композицией деятельностей изображается толстой прерывистой линией (Рис.1): Рис.1
Модифицируем демо-пример "BallAndSpring" - сделаем пружину с переменным коэффициентом жесткости (k1 при нулевом сжатии и k2 при более чем половинном сжатии). Для этого параметр K перетащим в раздел "Внутренние переменные" и введем параметры k1 и k2.
Переключение значения K можно реализовать различными способами: например, с помощью внутренних переходов в состоянии "MotionWithSpring" или с помощью условного уравнения во внутреннем классе "MotionWithSpringModel".
Однако, наиболее наглядным способом будет создания композиции деятельностей. Создадим внутренний гибридный класс "DynK" с картой поведения, реализующей логику переключения K (Рис.2).
Рис.2
Перетащим мышкой этот класс на состояние "MotionWithSpring" и на вопрос, хотим ли мы просто заменить деятельность в этом состоянии на экземпляр "DynK" или создать композицию деятельностей, выбрать второй вариант. Получим композицию " DynK+MotionWithSpringModel" и наглядную картину переключения коэффициента K (Рис.3).
Рис.3
|