exponenta event banner

Поведение с поддержкой DPI в MATLAB

Начиная с R2015b, MATLAB ® поддерживает DPI, что означает, что он использует полное разрешение системы для рисования графических элементов (шрифтов, пользовательских интерфейсов и графики). Графические элементы выглядят резкими и согласованными по размеру в этих системах с высоким DPI:

  • Системы Windows ®, в которых значение точки на дюйм (DPI) установлено выше 96

  • Системы Macintosh с дисплеями Apple Retina

Поведение с поддержкой DPI не относится к системам Linux ®.

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

Визуальный вид

Вот визуальные эффекты, которые вы можете заметить в системах с высоким DPI:

  • Настольный компьютер MATLAB, графика, шрифты и большинство компонентов пользовательского интерфейса выглядят резкими и визуализируются с полной графической детализацией в системах Macintosh и Windows.

  • При создании графического объекта или объекта пользовательского интерфейса укажите Units как 'pixels', размер этого объекта теперь соответствует размеру других объектов. Например, размер кнопки (в пикселях) теперь согласуется с размером текста на этой кнопке (в точках).

  • Элементы в MATLAB Toolstrip выглядят острее, чем в предыдущих версиях. Однако на некоторых системах значки в Toolstrip могут выглядеть слегка размытыми.

  • В системах Windows набор инструментов MATLAB может быть больше, чем в предыдущих версиях.

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

  • Можно увидеть различия в системах с несколькими дисплеями, которые включают комбинацию различных дисплеев (например, некоторые, но не все дисплеи имеют высокий DPI). Графические элементы в этих системах могут выглядеть по-разному.

Использование свойств объекта

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

Свойство единиц измерения

При установке Units свойства графического объекта или объекта пользовательского интерфейса для 'pixels'размер каждого пикселя теперь не зависит от устройства в системах Windows и Macintosh:

  • В системах Windows 1 пиксел = 1/96 дюйма.

  • В системах Macintosh 1 пиксел = 1/72 дюйма.

  • В системах Linux размер пикселя определяется DPI дисплея.

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

Например, каждый пиксель экрана в системе 192-DPI Windows равен 1/192 дюйма. В этом случае вдвое больше пикселей экрана покрывают то же самое линейное расстояние, что и не зависящие от устройства пиксели. Если создать фигуру и указать ее размер 500 на 400 пикселей, MATLAB сообщит размер 500 на 400 в Position собственность. Однако дисплей использует пиксели экрана 1000 на 800 для покрытия одной и той же графической области.

Примечание

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

Свойство корневого размера экрана

ScreenSize свойство корневого объекта может не соответствовать размеру отображения, сообщенному системами Windows с высоким DPI. В частности, значения не совпадают, когда Units свойство корневого объекта имеет значение 'pixels'. MATLAB сообщает значение ScreenSize свойство основано на независимых от устройства пикселях, а не на размере фактических пикселов на экране.

Внедрите собственность ScreenPixelsPerInch

ScreenPixelsPerInch свойство стало свойством только для чтения в R2015b. Если вы хотите изменить размер текста и других элементов на экране, настройте настройки операционной системы.

Кроме того, нельзя задать или запросить значение по умолчанию для ScreenPixelsPerInch собственность. Теперь эти команды возвращают ошибку:

get(groot,'DefaultRootScreenPixelsPerInch')
set(groot,'DefaultRootScreenPixelsPerInch')
Значение фабрики также не может быть запрошено. Эта команда также возвращает ошибку:
get(groot,'FactoryRootScreenPixelsPerInch')

Использование функций печати, создания фреймов и публикации

getframe и печать Функции

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

Функция публикации

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

См. также

|