Полное изображение: графические деревья

Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.

Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразовывают Notebook MuPAD в Live скрипты MATLAB.

Для полного понимания интерактивных функций средства просмотра, которое будет обсуждено в следующем разделе, мы должны знать структуру графика MuPAD® как “графическое дерево”.

Корень является “холстом”; это - область рисунка, в которой представляются все части графика. Типом объекта холста является plot::Canvas. Его физический размер может быть задан через атрибуты Width и Height.

В холсте могут быть отображены одна или несколько “графических сцен”. Все они должны иметь ту же размерность, т.е. объекты типа plot::Scene2d или plot::Scene3d, соответственно. Следующая команда отображает четыре различных 3D сцены. Мы устанавливаем BorderWidth для всех объектов типа plot::Scene3d к некоторому положительному значению так, чтобы области рисунка сцен стали видимыми более ясно:

plot(plot::Canvas(
  plot::Scene3d(plot::Sphere(1, [0, 0, 0], Color = RGB::Red),
                BackgroundStyle = LeftRight),
  plot::Scene3d(plot::Box(-1..1, -1..1, -1..1,
                          Color = RGB::Green),
                BackgroundStyle = TopBottom),
  plot::Scene3d(plot::Cone(1, [0, 0, 0], [0, 0, 1],
                           Color = RGB::Blue),
                BackgroundStyle = Pyramid),
  plot::Scene3d(plot::Cone(1, [0, 0, 1], [0, 0, 0],
                           Color = RGB::Orange),
                BackgroundStyle = Flat,
                BackgroundColor = RGB::Grey),
  Width = 80*unit::mm, Height = 80*unit::mm,
  Axes = None, BorderWidth = 0.5*unit::mm,
  plot::Scene3d::BorderWidth = 0.5*unit::mm
)):

Смотрите раздел Layout of Canvas и Scenes для получения дополнительной информации о том, как размещение холста, содержащего несколько сцен, установлено.

Системы координат типа plot::CoordinateSystem2d или plot::CoordinateSystem3d существуют в 2D сцене или 3D сцене, соответственно. В сцене может быть одна или несколько систем координат. Каждая система координат имеет свои собственные оси. В следующем примере мы помещаем две системы координат в одну сцену. Первое используется, чтобы отобразить продажи яблок в годах 1998 - 2003 в модулях 1 000 тонн, второе используется, чтобы отобразить продажу автомобилей в модулях 10 000 автомобилей. y - ось для яблок “сбрасывается оставленная” путем установки компонента x его источника на первый год 1998, пока y - ось для автомобилей “сбрасывается право” путем установки компонента x его источника на прошлый год 2003:

apples := plot::Polygon2d(
        [[1998, 7.4], [1999, 7.8], [2000, 7.7],
         [2001, 8.3], [2002, 8.0], [2003, 8.5]],
        Color = RGB::Red, PointsVisible = TRUE):
cars := plot::Polygon2d(
        [[1998, 3.2], [1999, 3.5], [2000, 3.7],
         [2001, 3.7], [2002, 4.0], [2003, 4.1]],
        Color = RGB::Blue,
                        PointsVisible = TRUE):
plot(plot::Scene2d(
  plot::CoordinateSystem2d(apples, ViewingBoxYRange = 0..10,
                           YAxisTitle = "apples/10^3 tons",
                           Axes = Origin, AxesOriginX = 1998,
                           XTicksNumber = None,
                           XTicksAt = [$ 1998..2003]),
  plot::CoordinateSystem2d(cars, ViewingBoxYRange = 0..5,
                           YAxisTitle = "cars/10^4",
                           Axes = Origin, AxesOriginX = 2003,
                           XTicksNumber = None,
                           XTicksAt = [$ 1998..2003])
)):

В системах координат может быть отображено произвольное число примитивов (соответствующей размерности). Таким образом у нас всегда есть холст, содержа одну или несколько сцен, с каждой сценой, содержащей одну или несколько систем координат. Графические примитивы (или groups таких примитивов) содержатся в системах координат. Следовательно, любой график MuPAD имеет следующую общую структуру:

       Canvas
        |
        +-- Scene 1
        |    |
        |    +-- CoordinateSystem 1
        |    |    +-- Primitive 1
        |    |    +-- Primitive 2
        |    |    ...
        |    |
        |    +-- CoordinateSystem 2
        |    |    +-- Primitive
        |    |    ...
        |    ...
        |
        +-- Scene 2
        |    |
        |    +-- CoordinateSystem
        |    |    +-- Primitive
        |    |    ...
        |    ...
        ...

Это - “графическое дерево”, которое отображено “обозревателем объектов” инструмента графики MuPAD (см. раздел Viewer, Браузер и Инспектора: Интерактивная Манипуляция).

Ярлыки: Для простых графиков, содержащих примитивы в одной системе координат только, которая находится в одной сцене холста, это было бы довольно громоздким, чтобы сгенерировать изображение командой такой как

plot(
  plot::Canvas(
    plot::Scene2d(
      plot::CoordinateSystem2d(Primitive1, Primitive2, ...)
    )
  )
):

На самом деле, команда

plot(Primitive1, Primitive2, ...):

достаточен: Это - ярлык вышеупомянутой команды. Это генерирует автоматически систему координат, которая содержит примитивы, встроил его в сцену, которая автоматически помещается в объекте холста. Таким образом эта команда неявно создает графическое дерево

       Canvas
        |
        +-- Scene 1
             |
             +-- CoordinateSystem 1
                  +-- Primitive 1
                  +-- Primitive 2
                  ...

это становится видимым в обозревателе объектов.