Обновления экрана

Графическая система MATLAB

Графика MATLAB® реализована с помощью нескольких потоков выполнения. Следующая схема иллюстрирует, как основные потоки и потоки средства отображения взаимодействуют во время процесса обновления. Сторона MATLAB содержит графическую модель, которая описывает геометрию, представленную аппаратным обеспечением машинной графики. Сторона средства отображения имеет копию геометрии в ее собственной системе памяти. Аппаратное обеспечение машинной графики может представить экран, не блокируя выполнение MATLAB.

Когда графическая модель изменяется, эти обновления должны быть переданы аппаратному обеспечению машинной графики. Отправка обновлений может быть узким местом, потому что аппаратное обеспечение машинной графики не поддерживает все типы данных MATLAB. Процесс обновления должен преобразовать данные в правильную форму.

Когда геометрия находится в памяти аппаратного обеспечения машинной графики, можно осознать преимущества производительности при помощи этих данных и минимизации данных, отправленных в обновлении.

Управление обновлениями

Обновления включают эти шаги:

  • Собирая изменения, которые требуют обновления экрана, такого как изменения свойства и добавленные объекты.

  • Обновление зависимостей в графической модели.

  • Отправка этих обновлений средства отображения.

  • Ожидание средства отображения, чтобы принять эти обновления перед возвращающимся выполнением к MATLAB.

Вы инициируете обновление путем вызывания функции drawnow. drawnow завершает выполнение, когда средство отображения принимает обновления, которые могут произойти, прежде чем средство отображения завершает обновление экрана.

Явные обновления

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

  • drawnow вызовов, pause, figure или другие функции, которые эффективно вызывают обновление (см. drawnow).

  • Запрашивает свойство, значение которого зависит от других свойств (см. Automatically Calculated Properties).

  • Завершает выполнение и возвращает управление в посдказку MATLAB или отладчик.