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 | положения камер, световых сигналов и текстовых объектов | |
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 (параметр анимации) и возвращает строку.
|
|
Положение текста. Координаты
|
|
Параметр анимации, заданный как |