MATLAB.Exponenta
–Û·Ë͇ Matlab&Toolboxes

MATLAB интерфейс

  В оглавление

Используя MATLAB можно управлять виртуальным миром при помощи команд командной строки в командном окне или же из M-файла. В обзоре рассмотрены следующие вопросы:

Создание объекта vrworld
Открытие виртуального мира
Взаимодействие с виртуальным миром
Закрытие и удаление объекта vrworld
Описание методов объекта vrworld
Описание методов объекта vrnode

Создание объекта vrworld

Для взаимодействия MATLAB с виртуальным миром через интерфейс командной строки необходимо создать два объекта: объект vrworld и объект vrnode. Иными словами, напрямую управлять объектами VRML из MATLAB нельзя и упомянутые объекты являются как бы посредниками между MATLAB и VRML, позволяя работать с виртуальным миром, используя интерфейс MATLAB. Виртуальные миры хранятся в файлах с расширением .wrl. После создания виртуального мира, т.е. когда у вас есть готовый файл .wrl, описывающий нужную вас сцену, можно создать vrworld объект. Обратимся к стандартной документации, где описан пример создания такого объекта, использующего виртуальный мир определенный в файле vrmount.wrl. Итак:

  1. Открывем MATLAB. В командном окне вводим команду:

    myworld = vrworld('vrmount.wrl')
    
    Если не поставить точку с запятой после введенной команды, то MATLAB выдаст следующее сообщение
    myworld =
    vrworld object: 1-by-1
    
    VR Car in the Mountains
    (/toolbox/vr/vrdemos/vrmount.wrl)
    
  2. Вводим vrwhos

    MATLAB выдаст сообщение похожее на следующее
    Closed, associated with 
    'C:\toolbox\vr\vrdemos\vrmount.wrl'. 
    Visible for local viewers. 
    No clients are logged on.
    

Открытие виртуального мира

Следующий шаг - это открытие виртуального мира. После открытия виртуального мира вы можете увидеть его в VRML вьювере, просмотреть структуру, а также, менять свойства вирутального мира из командной строки MATLAB. Итак вы создали объект типа vrworld, в нашем случае он назван myworld. Процедура открытия виртуального мира, ассоциированного с этим объектом такова:

  1. В командном окне MATLAB набираем команду:
    open(myworld);
    
    Мир хранящийся в файле vrmount.wrl открыт, при условии его синтаксически корректного описания.

  2. Вводим команду:
    set(myworld, 'Description', 'My first virtual world');
    

    Свойство description меняется на My first virtual world. Это свойство, которое будет отображаться как заголовок в открывшемся окне Virtual Reality Toolbox вьювера и списке виртуальных миров на VR Toolbox HTML странице.

  3. Отображаем мир из vrmount.wrl с помощью команды
    view(myworld)
    

    Вьювер, установленный у вас по умолчанию отобразит виртуальную сцену. Обычно это VR Toolbox вьювер, если вы не установили себе другой.

Объект типа vrworld, названный нами myworld ассоциирован с виртуальынм миром vrmount.wrl. Переменную myworld можно мыслить как нейкий handle объекта vrworld объявленный в рабочей среде MATLAB. Альтернативой является открытие виртуального мира в Web браузере, при условии наличия соответствующего плагина.

  1. Шаги 1 и 2 повторяются как в предшествующем случае


  2. Открывем браузер. Например, командой web url-browser или вручную. Далее в поле адреса вводим: http://localhost:8123

    Браузер показывает VR Toolbox HTML страницу со сслыкой на My first virtual world Номер порта 8123 - это порт по умолчанию для VR Tolbox. Если вы установили другой номер порта в системе, то введите его вместо 8123. Более подробную информацию как смотреть виртуальный мир с помощью HOST компьютера смотрите в документации по Virtual Reality Toolbox.

  3. Если браузер имеет необходимый плагин для просмотра VRML, то щелкните мышью My first virtual world.


  4. Если все в порядке то ваш браузер после сделанных шагов отобразит VRML мир vrmount.wrl.

Замечание. Если ваш WEB браузер не поддерживает отображение VRML сцен, то при клике на My first virtual world результатом будет сообщение о некоректной ссылке. Так что, если у вас появится такое сообщение, то убедитесь пожалуйста, что ваш браузер настроен для рабты с VRML. Установите плагин blaxxun Contact.

Для более подробной информации по настройке браузера опять же смотрите документацию для Virtual Reality, раздел "Setting the Default Viewer of Virtual Scenes".

Взаимодействие с виртуальным миром

На протяжении всего жизненного цикла объекта vrworld вы можете менять значения полей всех доступных узлов загруженного виртуального мира при помощи методов объекта vrnode. Это означает, что вы можете изменять и управлять элементами виртуального мира используя среду и интерфейс MATLAB.

Объект типа vrworld содержит именованые узлы, определенные в VRML файле с помощью ключевого слова DEF. Эти узлы имеют тип vrnode. Для более детальной информации смотрите документацию в разделах “vrworld Object Methods” и “vrnode Object Methods”.

Итак, после открытия мира, связанного с объектом vrworld, вы можете получить список доступных узлов виртуального мира. Процедура эта выглядит следующим образом:

  1. В командном окне MATLAB набираем
    nodes(myworld);
    

    MATLAB отображает список объектов vrnode и их полей, к которым может быть осуществлен доступ из Vitrual Reality Toolbox:

    Tunnel (Transform) [My first virtual world] 
    Road (Shape) [My first virtual world] 
    Bridge (Shape) [My first virtual world] 
    River (Shape) [My first virtual world] 
    ElevApp (Appearance) [My first virtual world] 
    Canal (Shape) [My first virtual world] 
    Wood (Group) [My first virtual world] 
    Tree1 (Group) [My first virtual world] 
    Wheel (Shape) [My first virtual world] 
    Automobile (Transform) [My first virtual world] 
    VPfollow (Viewpoint) [My first virtual world] 
    Camera_car (Transform) [My first virtual world] 
    View1 (Viewpoint) [My first virtual world]
    
  2. Набираем
    mynodes = get(myworld, 'Nodes')
    

    MATLAB создает массив vrnode объектов описывающих узлы виртуального мира и отображает на экране их список:

    mynodes = 
    vrnode object: 13-by-1
    
    Tunnel (Transform) [My first virtual world] 
    Road (Shape) [My first virtual world] 
    Bridge (Shape) [My first virtual world] 
    River (Shape) [My first virtual world] 
    ElevApp (Appearance) [My first virtual world] 
    Canal (Shape) [My first virtual world] 
    Wood (Group) [My first virtual world] 
    Tree1 (Group) [My first virtual world] 
    Wheel (Shape) [My first virtual world] 
    Automobile (Transform) [My first virtual world] 
    VPfollow (Viewpoint) [My first virtual world] 
    Camera_car (Transform) [My first virtual world] 
    View1 (Viewpoint) [My first virtual world]
    
  3. Набираем
    whos
    

    MATLAB выводит сообщения:

             Name    Size    Bytes     Class
             ans     1x1     132       vrfigure object
             mynodes 13x1    3564      vrnode object
             myworld 1x1     132       vrworld object
    

    Теперь вы можете получать характеристики узлов и и устанавливать новые значения для определенных свойств узлов. К примеру, можно изменить позицию автомобиля, используя объект Automobile (четвертый узел виртуального мира).

  4. Доступ к полям узла Automobile осуществляется командой
    fields(myworld.Automobile)
    
    или
    fields(mynodes(10));
    
    После применения этих команд MATLAB отобразит информацию в виде следующей таблицы:
    	Field           Access         Type              Sync
          -----------------------------------------------------------
          addChildren      eventIn         MFNode             off
          removeChildren   eventIn         MFNode             off
          children         exposedField    MFNode             off
          center           exposedField    SFVec3f            off
          rotation         exposedField    SFRotation         off
          scale            exposedField    SFVec3f            off
          scaleOrientation exposedField    SFRotation         off
          translation      exposedField    SFVec3f            off
          bboxCenter       field           SFVec3f            off
          bboxSize         field           SFVec3f            off
    
  5. Набираем
    view(myworld)
    

    Ваш вьювер по умолчанию откроет и отобразит виртуальный мир vrmount.wrl.

  6. Для эффекта наглядности, подвиньте окна MATLAB и браузера, таким образом, чтобы вы могли видеть оба в одно время. В командном окне MATLAB наберите команду:
    myworld.Automobile.translation = [15 0.25 20];
    

    MATLAB установит новую позицию для узла Automobile и вы cможете увидеть, что машина и впрямь поменяла позицию в окне VRML браузера.

    Поля определенного узла можно изменять, используя функцию vrnode/setfield.

Закрытие и удаление объекта vrworld

После окончания работы вы должны закрыть все открытые вами виртуальные миры и освободить выделенную под них память. Для этого в командном окне MATLAB последовательно наберите две команды:

close(myworld); 
delete(myworld); 

Образ виртуального мира объекта vrworld myworld после выполнения этих команд будет удален из памяти. Вьюер и браузер закроются и имя виртуального мира связанного с myworld будет удалено из списка доступных миров.

Замечание: Закрытие и удаление виртуального мира не удаляет myworld( handle объекта vrworld) из рабочей среды MATLAB.

Описание методов объекта vrworld

vrworld          Создает новый объект ассоциированный с определенным виртуальным миров (.wrl)
vrworld/close    Закрывает виртуальный мир
vrworld/delete   Удаляет виртуальный мир из памяти
vrworld/edit     Открывает виртуальный мир во внешнем VRML редакторе
vrworld/get      Считывает значение именованого свойства объекта vrworld 
vrworld/isvalid  Возвращает 1, если объект vrworld доступен или 0 в противном случае
vrworld/nodes    Список узлов объекта vrworld
vrworld/open     Открывает виртуальный мир
vrworld/reload   Перезагружает виртуальный мир из VRML файла
vrworld/save     Записывает виртуальный мир в VRML файл
vrworld/set      Миняет значения определенных свойств объекта vrworld
vrworld/view     Открывает виртуальный мир во вьювере по умолчанию

Описание методов объекта vrnode

vrnode          Создает узел или handle на имеющийся узел
vrnode/delete   Удаляет объект vrnode
vrnode/fields   Возвращает VRML поля для данного узла, заданного объектом vrnode
vrnode/get      Читает значение свойства объекта vrnode
vrnode/getfield Читает значения поля объекта vrnode
vrnode/isvalid  Возвращает 1 если объект vrnode доступен и 0 в противном случае
vrnode/set      Устанавливает свойства объекта узла виртуального мира
vrnode/setfield Изменяет знчение поля объекта vrnode
vrnode/sync     Устанавливает или отключает синхронизацию VRML полей с клиентами 
                (используетсяв в случает работы нескольких пользователей с одним виртуальным миром).

  В оглавление книги \ К следующему разделу


Поиск по сайту:

Система Orphus

Яндекс.Метрика