график::
Растровый график
Блокноты 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.
|
|
Область значений вертикальной переменной: |
|
Параметр анимации, заданный как |