plot
::Raster
Растровый график
Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.
Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразуют Notebook MuPAD в Live скрипты MATLAB.
plot::Raster(A
,options
) plot::Raster(A
,x = xmin .. xmax
,y = ymin .. ymax
, <a = amin .. amax
>,options
) plot::Raster(L
,options
) plot::Raster(L
,x = xmin .. xmax
,y = ymin .. ymax
, <a = amin .. amax
>,options
)
plot::Raster(A, x = xmin..xmax, y = ymin..ymax)
переводит матричный A значений RGB в регулярную 2D сетку прямоугольного расширения от левого нижнего угла (xmin
ymin
) к правому верхнему углу (xmax
ymax
). Прямоугольники окрашены согласно цветным записям в A.
plot::Raster
подачи для генерации 2D растровых объектов, таких как битовые массивы. Внешние растровые данные могут быть импортированы к сеансу MuPAD® через import::readbitmap
. Полученный массив значений цвета может быть передан непосредственно plot::Raster
встроить импортированное растровое изображение в 2D сцену MuPAD.
Когда значения цвета заданы массивом или матричным A, низкие индексы соответствуют левому нижнему углу графики. Высокие индексы соответствуют правому верхнему углу.
Обратите внимание на то, что растровые данные большинства стандартных графических форматов хранятся в обычном Западном порядке чтения: первые пиксели соответствуют левому верхнему углу, последние пиксели соответствуют правому нижнему углу. Служебный import::readbitmap
производит массив, в котором первый элемент соответствует левому нижнему углу. Растровые данные импортировали этот путь, может быть передан непосредственно plot::Raster
.
Массивы/матрицы не должны быть индексированы от 1. Например,
A = array( imin..imax, jmin..jmax, [..RGB values..])
дает к графическому массиву с
XMesh = jmax - jmin + 1
, YMesh = imax - imin + 1
.
Если никакая область значений графика xmin..xmax
, ymin..ymax
задан,
xmin = jmin - 1
, xmax = jmax
, ymin = imin - 1
, ymax = imax
используется.
Когда значения цвета заданы списком списков L, первые записи в списке соответствуют левому нижнему углу графики. Последние записи соответствуют правому верхнему углу.
Если никакая область значений графика xmin..xmax
, ymin..ymax
задан,
xmin = 0
, xmax = m
, ymin = 0
, ymax = n
используется, где n является длиной L, и m является (общей) длиной подсписков в L. Все подсписки (“строки”) должны иметь ту же длину.
Анимации инициированы путем указания диапазона a = amin .. amax
для параметра a
это отличается от переменных x
Y
. Таким образом, в анимациях, оба области значений x = xmin..xmax
, y = ymin..ymax
а также анимация располагается a = amin..amax
должен быть задан.
Связанная стандартная программа графика plot::Density
обеспечивает схожую функциональность, предлагающую автоматическую цветовую схему на основе значений скалярной плотности.
Атрибут | Цель | Значение по умолчанию |
---|---|---|
AffectViewingBox | влияние объектов на ViewingBox из сцены | TRUE |
AntiAliased | сглаженные линии и точки? | FALSE |
Color | основной цвет | RGB::Blue |
ColorData | значения цвета растрового графика | |
Frames | количество систем координат в анимации | 50
|
Legend | делает запись легенды | |
LegendText | короткий объяснительный текст для легенды | |
LegendEntry | добавить этот объект в легенду? | FALSE |
LineColor | цвет линий | RGB::Blue |
LineWidth | ширина линий | 0.35
|
LineStyle | тело, подчеркнутые штриховой линией или пунктирные линии? | Solid |
LinesVisible | видимость линий | FALSE |
Mesh | количество точек выборки | [11 , 11 ] |
Name | имя объекта графика (для браузера и легенды) | |
ParameterEnd | закончите значение параметра анимации | |
ParameterName | имя параметра анимации | |
ParameterBegin | начальное значение параметра анимации | |
ParameterRange | область значений параметра анимации | |
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 компонент | |
Visible | видимость | TRUE |
VisibleAfter | объект, видимый после этой временной стоимости | |
VisibleBefore | объект, видимый до этой временной стоимости | |
VisibleFromTo | объект, видимый в это время, располагается | |
VisibleAfterEnd | объект, видимый после его законченного времени анимации? | TRUE |
VisibleBeforeBegin | объект, видимый перед его временем анимации, запускается? | TRUE |
XMax | окончательное значение параметра “x” | |
XMesh | количество точек выборки для параметра “x” | 11
|
XMin | начальное значение параметра “x” | |
XName | имя параметра “x” | |
XRange | область значений параметра “x” | |
YMax | окончательное значение параметра “y” | |
YMesh | количество точек выборки для параметра “y” | 11
|
YMin | начальное значение параметра “y” | |
YName | имя параметра “y” | |
YRange | область значений параметра “y” |
Мы генерируем растровый график:
checkerboard:= array(1..8, 1..8): for i from 1 to 8 do for j from 1 to 8 do if i + j mod 2 = 0 then checkerboard[i,j] := RGB::Black; else checkerboard[i,j] := RGB::White; end_if; end_for: end_for: p := plot::Raster(checkerboard):
Объект графика представляется:
plot(p):
delete checkerboard, p:
Мы импортируем внешний растровый файл:
[width, height, colordata] := import::readbitmap("Eva.jpeg"):
Массив colordata
может быть передан непосредственно plot::Raster
:
scenewidth:= 80*unit::mm: sceneheight:= height/width*scenewidth: plot(plot::Raster(colordata), Width = scenewidth, Height = sceneheight, Footer = "This is Eva"):
delete width, height, colordata, scenewidth, sceneheight:
Это - Том:
[widthT, heightT, Tom] := import::readbitmap("Tom.jpeg", ReturnType = DOM_ARRAY): plot(plot::Raster(Tom), Width = widthT/3, Height = heightT/3):
Это - Джерри:
[widthJ, heightJ, Jerry] := import::readbitmap("Jerry.jpeg", ReturnType = DOM_ARRAY): plot(plot::Raster(Jerry), Width = widthT/3, Height = heightT/3):
Несмотря на то, что они выглядят по-другому, они топологически эквивалентны. Мы демонстрируем это путем деформации Тома Джерри с помощью сглаженной карты (1 - a) T + a J, a ∈ [0, 1]:
blend := (T, J, a) -> zip(T, J, (t,j) -> (1-a)*t + a*j): Tom2Jerry:= array(1..heightT, 1..widthT): for i from 1 to heightT do for j from 1 to widthT do Tom2Jerry[i, j]:= blend(Tom[i, j], Jerry[i, j], a): end_for: end_for:
Следующий вызов производит анимированный график деформации. Обратите внимание на то, что x и области значений y должны быть заданы для анимации:
plot(plot::Raster(Tom2Jerry, x = 1..widthT, y = 1..heightT, a = 0..1, Frames = 10, Footer = "Tom & Jerry"), Width = widthT/3, Height = heightT/3):
Это - среднее арифметическое Тома и Джерри:
plot(plot::Raster(map(subs(Tom2Jerry, a = 0.5), eval)), Footer = "(Tom + Jerry)/2", FooterFont = [12], Width = widthT/3, Height = heightT/3):
|
Массив доменного типа
|
|
Список списков
|
|
Имя горизонтальной переменной: идентификатор или индексируемый идентификатор. Это используется в качестве заголовка координатной оси в направлении x.
|
|
Область значений горизонтальной переменной: |
|
Имя вертикальной переменной: идентификатор или индексируемый идентификатор. Это используется в качестве заголовка координатной оси в направлении y.
|
|
Область значений вертикальной переменной: |
|
Параметр анимации, заданный как |