7.7. Практическое задание. Круги на воде
7.7. Практическое задание. Круги на воде
Модуль reactor предоставляет также возможность работать с поверхностью воды. Рассмотрим простой пример расчета динамики, в котором чайник падает в воду. Для этого, как обычно, понадобится создать несложную сцену. Это могут быть лишь два объекта: Teapot (Чайник) и Plane (Плоскость), имитирующая поверхность воды (рис. 7.20).
После создания объектов сцены можно добавлять объекты reactor. Вам понадобится: Water (Вода) из Spa?eWarps (Объемные деформации) и RBCollection (Коллекция твердых тел). Для добавления этих объектов в сцену выполните следующие действия.
1. На вкладке Create (Создание) командной панели щелкните на кнопке Space Warps (Объемные деформации)
и выберите из раскрывающегося списка разновидностей объектов строку reactor.
2. В свитке Object Type (Тип объекта) нажмите кнопку Water (Вода), в результате чего она выделится цветом.
3. В окне проекции Top (Сверху) постройте объект Water (Вода) с такими же размерами и положением в пространстве, как у объекта Plane (Плоскость). Это необходимо потому, что объект Water (Вода) модуля reactor нужен только для просчета динамики и объект Plane (Плоскость) впоследствии наследует все его деформации.
4. Добавьте в сцену коллекцию твердых тел. Для этого на вкладке Create (Создание) командной панели щелкните на кнопке Helpers (Вспомогательные объекты) и выберите в раскрывающемся списке разновидностей объектов строку reactor.
5. Нажмите кнопку RBCollection (Коллекция твердых тел) и затем щелкните в любом месте окна проекции для создания коллекции твердых тел (положение и размер значка значения не имеют).
6. При выделенном значке RBCollection01 перейдите на вкладку Modify (Изменение) командной панели и в свитке RB Collection Properties (Свойства коллекции твердых тел) щелкните на кнопке Add (Добавить).
7. В появившемся окне Select rigid bodies (Выделение твердых тел) выберите из списка чайник.
В результате объекты в окне проекции будут выглядеть, как показано на рис. 7.21.
Рис. 7.20. Сцена, подготовленная для расчетов динамики воды
Рис. 7.21. Обновленное окно проекции с добавленными объектами reactor
Теперь следует указать массу чайника в свойствах объекта и настроить параметры воды. Для этого выполните следующие действия.
1. Перейдите на вкладку Utilities (Утилиты) командной панели и щелкните на кнопке reactor.
2. Выделите объект Teapot (Чайник) в окне проекции. В свитке Properties (Свойства) задайте параметру Mass (Вес) значение 5.
3. В окне проекции выделите объект Water (Вода). Перейдите на вкладку Modify (Изменение) командной панели и в свитке Properties (Свойства) укажите значения согласно рис. 7.22 (значения параметров Size X (Размер по оси X) и Size Y (Размер по оси Y) у вас будут другими).
Теперь можно запустить просчет динамики. Для этого перейдите на вкладку Utilities (Утилиты) командной панели и щелкните на кнопке reactor. В свитке Preview & Animation (Просмотр и анимация) нажмите кнопку Create Animation (Создать анимацию). После того как модуль reactor просчитает анимацию взаимодействия объектов, щелкните на кнопке Play Animation (Воспроизвести анимацию)
расположенной в правом нижнем углу окна программы, и вы увидите, как чайник падает в воду, по которой расходятся круги.
Рис. 7.22. Свиток свойств объекта Water (Вода)
Для расчетов использовался объект модуля reactor Water (Вода), который не имеет возможности визуализации. По этой причине мы построили объект Plane (Плоскость). Используем его следующим образом.
1. Выделите объект Plane (Плоскость) в окне проекции.
2. На панели инструментов щелкните на кнопке Bind to Space Warp (Связать с воздействием)
3. Нажмите кнопку Select by Name (Выделить по имени)
на панели инструментов.
4. В появившемся окне Select Space Warp (Выделить объемные деформации) выберите из списка объект Water01 и нажмите кнопку Bind (Связать).
В результате объект Plane (Плоскость) унаследует все объемные деформации объекта Water (Вода). Теперь все готово для визуализации анимационной последовательности. На рис. 7.23 представлен фрагмент выполненной анимации.
Рис. 7.23. Чайник, плавающий в воде