Цвета

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

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

Самым видным атрибутом графика, доступным для всех примитивов, является Color. Библиотека MuPAD® plot знает 3 различных типов цветов:

Примитивы также принимают атрибут Color как ярлык для любого из этих цветов. В зависимости от примитива или PointColor, LineColor или FillColor установлены с атрибутом Color.

Цвета RGB

MuPAD использует модель цветов RGB, т.е. цвета заданы списками [r, g, b] красных, зеленых, и синих значений между 0 и 1. Черный и белый соответствуют to[0, 0, 0] и [1, 1, 1], соответственно. Библиотека RGB содержит многочисленные названия цвета с соответствующими значениями RGB:

RGB::Black, RGB::White, RGB::Red, RGB::SkyBlue

Можно перечислить все названия цвета, доступные в библиотеке RGB через info(RGB). Также существует команда RGB::ColorNames(), возвращающий полный список имен, опционально отфильтрованных. Например, давайте перечислим все цвета, имена которых содержат “Красный”:

RGB::ColorNames(Red)

Чтобы отобразить их, использовать

RGB::plotColorPalette("red")

После загрузки библиотеки цветов через use(RGB) можно использовать названия цвета в краткой форме Black, White, IndianRed и т.д.

В MuPAD цвет всех графических элементов может или быть задан RGB или значениями RGBa.

Значения цвета RGBa состоят из списков [r, g, b, a], содержащий четвертую запись: значение “непрозрачности” a между 0 и 1. Для a = 0 поверхностная закрашенная фигура, окрашенная этим цветом RGBa, полностью прозрачна (т.е. невидима). Для a = 1 поверхностная закрашенная фигура непрозрачна, т.е. это скрывает объекты графика, которые находятся позади него. Для 0 <a <1, поверхностная закрашенная фигура является полупрозрачной, т.е. объекты графика позади него “сияние через”.

Значения цвета RGBa могут быть созданы легко через библиотеку RGB. Одно единственное должно добавить четвертую запись в [r, g, b] списки, предоставленные названиями цвета. Самый легкий способ сделать это должно добавить список [a] к списку RGB через оператор конкатенации '.'. Мы создаем полупрозрачный 'серый':

RGB::Grey.[0.5]

Следующая команда строит очень прозрачное красное поле, содержа несколько менее прозрачное зеленое поле с непрозрачным синим полем внутри:

plot(
  plot::Box(-3..3, -3..3, -3..3, FillColor = RGB::Red.[0.2]),
  plot::Box(-2..2, -2..2, -2..2, FillColor = RGB::Green.[0.3]),
  plot::Box(-1..1, -1..1, -1..1, FillColor = RGB::Blue),
  LinesVisible = TRUE, LineColor = RGB::Black,
  Scaling = Constrained
):

В следующем примере мы строим точки, случайным образом распределенные с произвольными цветами и случайным translucencies:

plot(plot::PointList2d([[frandom() $ i = 1..2, 
                         [frandom() $ i = 1..4]] 
                       $ i = 1..300],
                       PointSize=4),
     Axes=None, Scaling=Constrained)

Цвета HSV

Кроме модели RGB, существуют различные другие популярные цветные форматы, используемые в компьютерной графике. Каждый - модель HSV (Оттенок, Насыщение, Значение). Библиотека RGB предоставляет стандартным программам RGB::fromHSV и RGB::toHSV, чтобы преобразовать цвета HSV в цвета RGB и наоборот:

hsv := RGB::toHSV(RGB::Orange)

RGB::fromHSV(hsv) = RGB::Orange

С утилитой RGB::fromHSV все раскрашивает график MuPAD, может быть задан легко как цвета HSV. Например, 'фиолетовый' цвет дан значениями HSV [290, 0.4, 0.6], тогда как 'темно-зеленый' дан спецификацией HSV [120, 1, 0.4]. Следовательно, полупрозрачная фиолетовая сфера, пересеченная непрозрачной темно-зеленой плоскостью, может быть задана можно следующим образом:

plot(plot::Sphere(1, [0, 0, 0], 
                  Color = RGB::fromHSV([290, 0.4, 0.6]).[0.5]),
     plot::Surface([x, y, 0.5], x = -1..1, y = -1..1, 
                   Mesh = [2, 2],
                   Color = RGB::fromHSV([120, 1, 0.4]))
):

Для просмотра документации необходимо авторизоваться на сайте