график::

3D текст

Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.

Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразовывают Notebook MuPAD в Live скрипты MATLAB.

Синтаксис

plot::Text3d(text, [x, y, z], <a = amin .. amax>, options)

Описание

plot::Text3d чертит текст в данном положении (x, y, z) (“точка привязки”). Атрибуты VerticalAlignment и HorizontalAlignment определяют выравнивание текста w.r.t. его привязка.

Размер, цвет текста, типом шрифта и т.д. управляет атрибут TextFont.

В отличие от plot::Text2d, 3D текст не может состоять из нескольких строк. Символ новой строки \n в строках MuPAD® не имеет эффекта.

По умолчанию 3D текст использует Billboarding = TRUE, т.е. текст автоматически ориентирован таким образом, что это читаемо наблюдателем. Когда установка Billboarding = FALSE, атрибут TextOrientation позволяет фиксировать ориентацию текста произвольно на пробеле. Смотрите страницу справки TextOrientation для деталей.

Текст текстового объекта может быть анимирован, если он передается как процедура, которая возвращает текстовую строку во время времени выполнения. Cf. Пример 5.

Атрибуты

АтрибутЦельЗначение по умолчанию
AffectViewingBoxвлияние объектов на ViewingBox сценыTRUE
Billboardingтекстовая ориентация на пробеле или к наблюдателюTRUE
Framesколичество кадров в анимации50
HorizontalAlignmentвыравнивание по горизонтали текстовых объектов w.r.t. их координатыLeft
Legendделает запись легенды 
LegendTextкороткий объяснительный текст для легенды 
LegendEntryдобавить этот объект в легенду?FALSE
Nameимя объекта графика (для браузера и легенды) 
ParameterEndзакончите значение параметра анимации 
ParameterNameимя параметра анимации 
ParameterBeginначальное значение параметра анимации 
ParameterRangeобласть значений параметра анимации 
Positionположения камер, световых сигналов и текстовых объектов 
PositionXx-положения камер, световых сигналов и текстовых объектов 
PositionYy-положения камер, световых сигналов и текстовых объектов 
PositionZz-положения камер, световых сигналов и текстовых объектов 
Textтекст текстового объекта 
TextFontшрифт текстовых объектов[" sans-serif ", 11]
TextOrientationориентация 3D текста[1, 0, 0, 0, 0, 1]
TimeEndвремя окончания анимации10.0
TimeBeginвремя начала анимации0.0
TimeRangeоперативный промежуток анимации0.0 .. 10.0
Titleобъектный заголовок 
TitleFontшрифт объектных заголовков[" sans-serif ", 11]
TitlePositionположение объектных заголовков 
TitleAlignmentвыравнивание по горизонтали заголовков w.r.t. их координатыCenter
TitlePositionXположение объектных заголовков, x компонент 
TitlePositionYположение объектных заголовков, y компонент 
TitlePositionZположение объектных заголовков, z компонент 
VerticalAlignmentвыравнивание по вертикали текстовых объектов w.r.t. их координатыBaseLine
VisibleвидимостьTRUE
VisibleAfterобъект, видимый после этой временной стоимости 
VisibleBeforeобъект, видимый до этой временной стоимости 
VisibleFromToобъект, видимый в это время, располагается 
VisibleAfterEndобъект, видимый после его законченного времени анимации?TRUE
VisibleBeforeBeginобъект, видимый перед его временем анимации, запускается?TRUE

Примеры

Пример 1

Мы чертим текстовую строку 'Hello World' в точке привязки (1, 2, 3), который обозначается красной точкой:

plot(plot::Circle3d(3, [1, 2, 3], [0, 0, 1]),
     plot::Point3d([1, 2, 3]),
     plot::Text3d("Hello world!", [1, 2, 3],
                  HorizontalAlignment = Center),
     Axes = Frame, TextFont = [24],
     PointColor = RGB::Red, PointSize = 3*unit::mm)

Пример 2

Мы анимируем точки привязки следующих текстов и демонстрируем различные возможности выравнивания:

plot(plot::Circle3d(1, [0, 0, 0], [0, 0, 1]),
     plot::Point3d([sin(a), cos(a), 0], a = 0..2*PI),
     plot::Point3d([cos(a), -sin(a), 0], a = 0..2*PI),
     plot::Point3d([-sin(a), -cos(a), 0], a = 0..2*PI),
     plot::Point3d([-cos(a), sin(a), 0], a = 0..2*PI),
     PointColor = RGB::Red, PointSize = 3*unit::mm,
     plot::Text3d("Hello (1)", [sin(a), cos(a), 0], a = 0..2*PI),
     plot::Text3d("Hello (2)", [cos(a), -sin(a), 0], a = 0..2*PI,
                  HorizontalAlignment = Left,
                  VerticalAlignment = BaseLine),
     plot::Text3d("Hello (3)", [-sin(a), -cos(a), 0], a = 0..2*PI,
                  HorizontalAlignment = Center,
                  VerticalAlignment = Top),
     plot::Text3d("Hello (4)", [-cos(a), sin(a), 0], a = 0..2*PI,
                  HorizontalAlignment = Right,
                  VerticalAlignment = Bottom),
     TextFont = [Italic, 24], Axes = Frame,
     CameraDirection = [0, -1, 10])

Пример 3

В отличие от plot::Text2d, 3D текст не может состоять из нескольких строк. Символ новой строки \n в строках MuPAD не имеет никакого эффекта:

plot(plot::Text3d("A 3D text cannot \nhave several\nlines", 
                  HorizontalAlignment = Center,
                  [0, 0, 0]),
     Axes = Frame, TextFont = [20])

Пример 4

На значение по умолчанию атрибут Billboarding = установлен TRUE. Текст всегда стоит перед наблюдателем:

plot(plot::Circle3d(1, [0, 0, 0], [0, 0, 1]),
     plot::Point3d([-cos(a), -sin(a), 0], a = 0 .. 2*PI),
     plot::Point3d([cos(a), sin(a), 0], a = 0 .. 2*PI),
     plot::Text3d("Hello (1)", [-cos(a), -sin(a), 0],
                  a = 0 .. 2*PI),
     plot::Text3d("Hello (2)", [cos(a), sin(a), 0],
                  a = 0 .. 2*PI),
     Axes = Frame, TextFont = [20],
     PointColor = RGB::Red, PointSize = 2*unit::mm)

Мы используем TextOrientation, чтобы зафиксировать ориентацию текстов на пробеле. Первый текст находится в плоской параллели x-y плоскость, второй текст параллелен x-z плоскость. Обратите внимание на то, что мы должны задать Billboarding = FALSE для TextOrientation, чтобы иметь эффект:

plot(plot::Circle3d(1, [0, 0, 0], [0, 0, 1]),
     plot::Point3d([-cos(a), -sin(a), 0], a = 0 .. 2*PI),
     plot::Point3d([cos(a), sin(a), 0], a = 0 .. 2*PI),
     PointColor = RGB::Red, PointSize = 2*unit::mm,
     plot::Text3d("Hello (1)", [-cos(a), -sin(a), 0],
                  a = 0 .. 2*PI,
                  TextOrientation = [1, 0, 0, 0, 1, 0]),
     plot::Text3d("Hello (2)", [cos(a), sin(a), 0],
                  a = 0 .. 2*PI,
                  TextOrientation = [1, 0, 0, 0, 0, 1]),
     Billboarding = FALSE, TextFont = [20], Axes = Frame)

Пример 5

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

plot(plot::Text3d(a -> stringlib::formatf(a, 2, 5)." sec",
                  [0, 0, 0], a = 0..20),
     TextFont = [60], 
     HorizontalAlignment = Center, VerticalAlignment = Center,
     Axes = Frame, Frames = 201, TimeRange = 0..20)

Параметры

text

Текст: строка. Также процедура, которая принимает входной параметр того a (параметр анимации) и возвращает строку.

text эквивалентен атрибуту Text.

x, y, z

Положение текста. Координаты x, y, z должен быть действительными численными значениями или арифметическими выражениями параметра анимации a.

x, y, z эквивалентен атрибутам Position, PositionX, PositionY, PositionZ.

a

Параметр анимации, заданный как a = amin..amax, где amin является начальным значением параметров и amax, является итоговым значением параметров.

Смотрите также

Функции MuPAD

MuPAD графические примитивы