vrcollisions пример показывает простой путь, как реализовать обнаружение столкновений в Simulink® 3D Animation™.
В виртуальном мире задан X3D LinePickSensor. Этот датчик обнаруживает аппроксимированные столкновения нескольких лучей (смоделированный как IndexedLineSet) с произвольными конфигурациями в сцене. В случае геометрических примитивов обнаруживаются точные столкновения. Один из LinePickSensor, поля вывода являются isActive полем, которое становится ВЕРНЫМ, как только столкновение между любым из лучей и окружающими объектами сцены обнаруживается.
LinePickSensor с 3 видимыми желтыми лучами обнаружения присоединен к тривиальной модели Робота (представленный синим цилиндром). Робот в комнате с несколькими препятствиями. Во время симуляции Робот продвигается, пока его датчик не возвращается в стену или препятствие. Используйте кнопки Left and Right, чтобы повернуть Робота так, чтобы был свободный путь вперед, и Робот начинает перемещаться снова.
В модели, существуют и Приемник VR и Исходные блоки VR, заданные, сопоставленные с той же виртуальной сценой. Источник VR используется, чтобы считать датчик isActive сигнал и текущее положение Робота. Приемник VR используется, чтобы установить положение Робота / вращение и цвет - Робот покраснел, когда блокировано.
В виртуальном мире существует две заданные точки зрения - одна статическая - "Обзор", и один присоединенный к Роботу - "Следует за Роботом". Изменитесь на последнего, чтобы видеть сцену из другой точки зрения.