Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Размещение текстового объекта, определение его размеров и положения




Текстовый объект, вывод текста и математических формул в графическое окно.

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

Начнем с простого примера, в котором график функции следует снабдить текстовой информацией так, как на приведенном ниже рисунке.

Для получения такого графика достаточно выполнить следующие команды:

>> x = -1:0.05:1; >> y = exp(x).*sin(3*x); >> plot(x, y)

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

>> hT = text(0, -0.5, 'y(x)=exp(x)sin(3x)')

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

>> doc text

(см. таблицу внизу страницы этого раздела справочной системы). За размер шрифта отвечает свойство FontSize. Напомним, что текущее значение какого-либа свойства графического объекта всегда можно узнать при помощи функции get:

>> get(hT, 'FontSize')ans = 10

Действительно, размер 10 и именно пунктов, поскольку в MATLAB пункты выбраны по умолчанию в качестве единиц для задания размера шрифта. Выбор единиц измерения размера шрифта определяется значением свойства FontUnits текстового объекта, которое по умолчанию есть 'points' (т.е. пункты, 1пт = 1/72 дюйма). Возможно отказаться от пунктов и выбрать другие значения свойства FontUnits, ими могут быть:

  • 'inches' (дюймы);
  • 'centimeters' (сантиметры);
  • 'pixels' (пиксели);
  • 'normalized' (нормализованные).

Выбор нормализованных единиц удобен, если размер шрифта должен определяться размером осей (1 нормализованная единица равна высоте осей), скажем, требуется разместить текстовую надпись высотой в половину высоты оси ординат:

>> figure >> axes >> hT1 = text(0, 0.5, 'ABC') >> set(hT1, 'FontUnits', 'normalized', 'FontSize', 0.5)

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

В этом примере мы сначала создали графическое окно и оси при помощи функций figure и axes, соответственно. Обратите внимание, что по умолчанию функция axes создает оси, у которых пределы оси абсцисс и оси ординат есть [0, 1]. При выводе текстового объекта функцией text мы указали координаты: 0 по оси абсцисс и 0.5 по оси ординат. Сейчас абсцисса левого нижнего угла текстового объекта равна нулю, а середина текстового объекта по вертикали имеет ординату 0.5. Так происходит потому, что два свойства текстового объекта: HorizontalAlignment и VerticalAlignment, отвечающие за выравнивание текста соответственно по горизонтали и вертикали, по умолчанию имеют следующие значения:

HorizontalAlignment = 'left' и VerticalAlignment = 'middle'.

Свойство HorizontalAlignment может принимать значения 'left' (по умолчанию), 'center' и 'right', а VerticalAlignment - 'top', 'cap', 'middle', 'baseline', 'bottom'. Смысл значений свойства HorizontalAlignment вполне очевиден. Значения 'cap', 'middle' и 'baseline' означают вертикальное выравнивание по заглавным буквам, середине и нижней линии текста, соответственно. Поместим текст "ApqC" размера 70пт в точку с координатами (0, 0.5) и для наглядности нарисуем линию, параллельную горизонтальной оси, которая проходит через y = 0.5:

>> figure >> axes >> hT2 = text(0, 0.5, 'ApqC') >> set(hT2, 'FontSize', 70) >> line([0 1], [0.5 0.5])

Теперь, изменяя значение свойства VerticalAlignment, можно понаблюдать за поведением текста, см. рисунки:

>> set(hT2, 'VerticalAlignment', 'baseline')
>> set(hT2, 'VerticalAlignment', 'cap')
>> set(hT2, 'VerticalAlignment', 'middle') (как по умолчанию)

Значения 'top' и 'bottom' свойства VerticalAlignment означают выравнивание некоторого прямоугольника, в который заключен текст (): 'top' - верхняя сторона прямоугольника имеет заданную координату (в нашем примере 0.5), 'bottom' - нижняя сторона прямоугольника имеет заданную координату (также 0.5 в нашем примере). Координаты этого прямоугольника определяются значением свойства Extent текстового объекта. Это свойство доступно только для чтения, его нельзя изменять и его значением является вектор из четырех элементов [left, bottom, width, height], где left и bottom - координаты левого нижнего угла прямоугольника, а width и height, соответственно, ширина и высота. По умолчанию, эти величины заданы в системе координат осей. Так происходит потому, что свойство Units (не путать с FontUnits) по умолчанию имеет значение 'data'. Другими возможными значениями свойства Units являются 'pixels' (пиксели), 'inches' (дюймы), 'centimeters' (сантиметры), 'points' (пункты) или нормализованные единицы (считается, что левый нижний угол осей имеет координаты (0, 0), а правый верхний - (1, 1)). Если значение свойства Units отлично от 'data', т.е. мы работаем не в системе координат осей, то меняется и смысл элементов вектора [left, bottom, width, height], который является значением свойства Extent. Именно, элементы left и bottom теперь равны расстоянию от нижнего левого угла осей по горизонтали и вертикали, соответственно, а width и height - ширина и высота прямоугольника, ограничивающего текстовый объект. Разумеется, left, bottom, width и height заданы в тех единицах измерения, которые выбраны при помощи свойства Units текстового объекта.




Поделиться с друзьями:


Дата добавления: 2015-06-04; Просмотров: 404; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.01 сек.