plot::Text3d

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 для деталей.

Текст текстового объекта может быть анимирован, если он передается как процедура, которая возвращает текстовую строку во время времени выполнения. См. Пример 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.

xYZ

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

xYZ эквивалентны атрибутам Position, PositionX, PositionY, PositionZ.

a

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

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

Функции MuPAD

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