график::
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 | положения камер, световых сигналов и текстовых объектов | |
PositionX | x-положения камер, световых сигналов и текстовых объектов | |
PositionY | y-положения камер, световых сигналов и текстовых объектов | |
PositionZ | z-положения камер, световых сигналов и текстовых объектов | |
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 |
Мы чертим текстовую строку '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)
Мы анимируем точки привязки следующих текстов и демонстрируем различные возможности выравнивания:
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])
В отличие от plot::Text2d
, 3D текст не может состоять из нескольких строк. Символ новой строки \n
в строках MuPAD не имеет никакого эффекта:
plot(plot::Text3d("A 3D text cannot \nhave several\nlines", HorizontalAlignment = Center, [0, 0, 0]), Axes = Frame, TextFont = [20])
На значение по умолчанию атрибут 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)
Текст текстового объекта может быть анимирован, если текстовая строка предоставлена процедурой. Мы используем 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)
|
Текст: строка. Также процедура, которая принимает входной параметр того a (параметр анимации) и возвращает строку.
|
|
Положение текста. Координаты
|
|
Параметр анимации, заданный как |