MATLAB® графика реализована с использованием нескольких потоков выполнения. Следующая схема иллюстрирует взаимодействие потоков main и средство отображения во время процесса обновления. Сторона MATLAB содержит графическую модель, которая описывает геометрию, визуализированную графическим оборудованием. Сторона средства отображения имеет копию геометрии в собственной системе памяти. Графическое оборудование может визуализировать экран, не блокируя выполнение MATLAB.
Когда графическая модель изменяется, эти обновления должны быть переданы на графическое оборудование. Отправка обновлений может оказаться узким местом, поскольку графическое оборудование не поддерживает все типы данных MATLAB. Процесс обновления должен преобразовать данные в правильную форму.
Когда геометрия находится в памяти графического оборудования, можно реализовать преимущества эффективности, используя эти данные и минимизируя данные, отправленные в обновлении.
Обновления включают следующие шаги:
Сбор изменений, требующих обновления экрана, таких как изменения свойств и добавление объектов.
Обновление зависимостей в графической модели.
Отправка этих обновлений в средство отображения.
Ожидание принятия этими обновлениями средством отображения перед возвратом выполнения в MATLAB.
Вы инициируете обновление, вызывая drawnow
функция. drawnow
завершает выполнение, когда средство отображения принимает обновления, что может произойти до завершения средства отображения обновления экрана.
Во время выполнения функции добавление графических объектов к рисунку или изменение свойств существующих объектов не обязательно вызывает немедленное обновление экрана. Процесс обновления происходит, когда происходят изменения в графике, которые нужно обновить, и коде:
Вызовы drawnow
, pause
, figure
, или другие функции, которые эффективно вызывают обновление (см. drawnow
).
Запрашивает свойство, значение которого зависит от других свойств (см. Раздел «Автоматически вычисляемые свойства»).
Завершает выполнение и возвращает управление в подсказку MATLAB или отладчик.