# ГлобальноеСвойство

для настройки вида объектов (кривых, поверхностей, ...) в командах plot или surf

## Описание

`ГлобальноеСвойство` - это необязательный аргумент, который может использоваться внутри команд plot или surf. Он позволяет глобальную настройку построения всех новых линий (соответственно, поверхностей). Он должен указываться в виде пары {`ИмяСвойства`,`ЗначениеСвойства`}. В `plot` или `surf` может быть установлено несколько пар одновременно.

`ИмяСвойства` должно быть строкой, определяющей то свойство, которое необходимо установить. `ЗначениеСвойства` может быть вещественным, целочисленным или строкой (скаляром или матрицей) в зависимости от типа используемого свойства. Например, чтобы определить красную (цвет) штрихпунктирную линию с длинными штрихами (стиль линии) с маркерами в виде ромба (маркер), последовательность должна быть: `'Colo'`, `'red'`, `'LineSt'`, `'-.'`, `'Marker'`, `'diam'`.

Как видите, не требуется полного написания имени каждого свойства и значения однако те аргументы, которые определяются в любом порядке, должны оставаться однозначными. Более того, строковое определение не чувствительно к регистру. `ГлобальноеСвойство` - имеет преимущество над всеми ранее установленными `ВидамиЛиний`.

Вот полный список `ИмёнСвойств`, которые вы можете определять (при использовании plot или surf) и их возможные `ЗначенияСвойства`. Если не указано, то те свойства применимы как для объектов `Polyline`, так и объектов `Fac3d` (созданных соответственно с помощью `plot` или `surf`) и, как упоминалось ранее, они применяются к новым создаваемым объектам (линиям или поверхностям).

Иногда, вы можете иметь два `ИмениСвойства`, соответствующих одному свойству: первое из них эквивалентно по умолчанию имени в Matlab'е, втрое имя по умолчанию используется в Scilab'е. (т.е.: `Color` или `Foreground` для линии, смотрите ниже).

CData или ColorData:

  матрица вещественных значений, определяющая цвет каждой точки, определяемой матрицей `Z`. Это свойство связано со свойством `data.color` объекта (см. свойства поверхностей).

  Заметьте, что это свойство доступно только для поверхностей.

CDataMapping или ColorDataMapping:

  строка со значением `'scaled'` или `'direct'`. Если установлен `data.color`, то каждое значение индекса цвета определяет отдельное значение для каждой вершины. `cdata_mapping` определяет масштабированы ли те индексы для линейного отображения в текущей цветовой карте ("colormap") (режим `'scaled'`) или указывает напрямую на эту цветовую карту (режим `'direct'`). Это свойство полезно, когда `color_flag` равно `2`, `3` или `4`.

  Заметьте, что это свойство существует только у объектов `Fac3d`. Заметьте также, у `plot3d` по умолчанию режим `'direct'`, а у `surf` по умолчанию режим `'scaled'`.

Clipping:

  строка `"on"` или `"off"`, определяющая режим обрезки (по умолчанию - `"on"`). Это эквивалентно свойству `clip_state` ("состояние обрезки"). Это поле содержит поле `visible` ("видимость", см. свойства ломаной линии).

  Заметьте, что это свойство пока что не доступно для объектов поверхности.

Color ("цвет") или Foreground ("передний план"):

  строка, определяющая известный цвет (см. color_list, "список цветов") или RGB-вектор размером `1` на `3` (или `3` на `1`), определяющий номер цвета. Номер цвета задаётся в виде тройки `R`, `G`, `B`, соответствующих, соответственно, интенсивности красного, зелёного и синего между 0 и 1. Это свойство связано со объектным свойством `foreground` (передний план, см. свойства ломаной линии ).

  Цвет не доступен для объектов поверхности. Свойство `Foreground` существует только для объектов поверхности, но связано со свойством `EdgeColor` ("цвет кромки") в Matlab'е (см. свойства поверхности).

EdgeColor ("цвет кромки") или Foreground:

  строка, определяющая известный цвет (см. color_list) или RGB-вектор размером `1` на `3` (или `3` на `1`), определяющий номер цвета. Номер цвета задаётся в виде тройки `R`, `G`, `B`, соответствующих, соответственно, интенсивности красного, зелёного и синего между 0 и 1. Это свойство связано со объектным свойством `foreground` (см. свойства поверхности).

  Для объектов `polyline` ("ломаная линия"), свойство `Foreground` существует с различными значениями (см. выше), а `EdgeColor` вообще отсутствует.

FaceColor:

  строка со значением `'none'`, `'flat'` или `'interp'`, определяющая способ, которым строятся цвета фацетов. Когда выбрано `'none'`, то строится сетка поверхности; если установлено `'flat'` (режим по умолчанию), то значения `Fac3d` `color.data` определяют один цвет на фацет, используя цвет первой вершины фацета. Если значение `'interp'`, то выполняется интерполированное затенение на поверхности, используя `color.data` для определения цвета в каждой вершине каждого фацета.

LineStyle:

  это значение свойства должно быть строковым, определяющим стиль линии. Это свойство связано с объектным свойством `line_style` ("стиль линии", см. свойства ломаной линии или свойства поверхности).

  `Определитель` | `Стиль линии`
  `-` | сплошная линия (по умолчанию)
  `--` | штриховая линия
  `:` | штрихпунктирная линия (две точки)
  `-.` | штрихпунктирная линия (одна точка)
  `none` | нет линии

Marker ("маркер") или MarkStyle ("стиль маркера"):

  строка, определяющая тип маркера. Заметьте, что если вы определяете маркер без стиля линии, то будут нарисованы и линия (по умолчанию сплошная) и маркер. Это свойство связано с объектными свойствами `mark_style` ("стиль маркера") и `mark_mode` ("режим маркера") (см. свойства ломаной линии или свойства поверхностей).

  `Определитель` | `Тип маркера`
  `+` | знак "плюс"
  `o` | кружок
  `*` | звёздочка
  `.` | точка
  `x` | крестик
  `'square'` или `'s'` | квадрат
  `'diamond'` или `'d'` | ромб
  `^` | треугольник, указывающий вверх
  `v` | треугольник, указывающий вниз
  `>` | треугольник, указывающий вправо
  `<` | треугольник, указывающий влево
  `'pentagram'` или `'p'` | пятиконечная звезда (пентаграмма)
  `'none'` | нет маркера (по умолчанию)

MarkerEdgeColor ("цвет кромки маркера") или MarkForeground ("передний план маркера"):

  строка, определяющая известный цвет (см. color_list) или RGB-вектор размером `1` на `3` (или `3` на `1`), определяющий номер цвета. Номер цвета задаётся в виде тройки `R`, `G`, `B`, соответствующих, соответственно, интенсивности красного, зелёного и синего между 0 и 1. Это свойство связано со объектным свойством `mark_foreground` (см. свойства ломаной линии или свойства поверхности).

MarkerFaceColor ("цвет внешней стороны маркера") или MarkBackground ("задний план маркера"):

  строка, определяющая известный цвет (см. color_list) или RGB-вектор размером `1` на `3` (или `3` на `1`), определяющий номер цвета. Номер цвета задаётся в виде тройки `R`, `G`, `B`, соответствующих, соответственно, интенсивности красного, зелёного и синего между 0 и 1. Это свойство связано с объектным свойством `mark_background` ("фон маркера", см. свойства ломаной линии или свойства поверхности).

MarkerSize ("размер маркера") или MarkSize:

  скаляр, определяющий размер маркера в пунктах ( `point`). Это свойство связано с объектным свойством `mark_size` с `mark_size_unit` ("единицы измерения размера маркера"), установленным в `"point"` (см свойства ломаной линии или свойства поверхностей).

Visible ("видимость"):

  строковое значение `"on"` ("вкл.") или `"off"` ("откл."), определяющее режим видимости (по умолчанию включён, `"on"`). Это свойство связано с объектным свойством `visible` (см. свойства ломаной линии или свойства поверхностей).

X data:

  вектор или матрица вещественных значений, (пере)определяющих указанные данные для всех построенных линий или поверхностей. Касательно размеров, обратите внимание, что эти новые данные должны совпадать со в определёнными ранее данными `X`: иными словами, все эти матрицы данных должны быть одного размера. Это свойство связано с объектным свойством `data.x` (см. свойства ломаной линии или свойства поверхностей).

Y data:

  вектор или матрица вещественных значений, (пере)определяющих указанные данные для всех построенных линий или поверхностей. Касательно размеров, обратите внимание, что эти новые данные должны совпадать со в определёнными ранее данными `Y`: иными словами, все эти матрицы данных должны быть одного размера. Это свойство связано с объектным свойством `data.y` property (см. свойства ломаной линии или свойства поверхностей).

Z data:

  когда используется в `plot`, то это вещественный вектор или матрица, добавляющая данные `Z` ко всем построенным линиям; в `surf` это вещественная матрица, (пере)определяющая заданные данные для всех поверхностей. Касательно размеров, заметьте, что новые данные должны совпадать со всеми ранее определёнными данными `X` и `Y`. Это свойство связано с объектным свойством `data.z` (см. свойства ломаной линии или свойства поверхностей).

## Примеры

    // --------------------
    // С командой plot:
    // --------------------
    x=1:10; // Init.
    plot(x,sin(x),'colo','red','linest','-.','marker','>','markeredg','cyan','markerFace','yellow','markersize',5)
    clf();
    // порядок комбинаций {ИмяСвойства,ЗначениеСвойства} не имеет значения
    plot(x,sin(x),'marker','p','markerfac','cyan','markersiz',10)
    clf();
    // комбинация ВидаЛиний и ГлобальногоСвойства показывает преимущество Глобального свойства
    plot(x,x.*x,'*cya--','color','gr','linestyle','-','marker','sq','markersize',6,'markforegroun','red','markbackgro',[0.2 0.5 0.6])
    clf();
    //множество графиков с различными ВидамиЛиний и, наконец, некоторые ГлобальныеСвойства
    clf();
    t=0:%pi/20:2*%pi;
    plot(t,sin(t),'ro-.',t,cos(t),'cya+',t,abs(sin(t)),'--mo','markstyl','diam')
    // --------------------
    // С командой plot2d:
    // --------------------
    function draw_marks(title)
      a=gca();
      a.title.text=title;
      a.mark_size=8;
      a.data_bounds=[-1.5 1.5 -1.5 1.5];
      theta=(1/15)*(2*%pi)*[0:15];
      plot2d(cos(theta),sin(theta));
      for i=0:14 do
        theta=(i/15)*(2*%pi);
        plot2d(cos(theta),sin(theta),style=-i);
      end
    endfunction
    clf();
    subplot(2,2,1)
    draw_marks("чёрный передний план/ белый задний план")
    subplot(2,2,2)
    a=gca();
    a.mark_foreground=-1;
    a.mark_background=4;
    draw_marks("чёрный передний план/ синезелёный задний план")
    subplot(2,2,3)
    a=gca();
    a.mark_background=0;
    draw_marks("чёрный передний план/ невидимый задний план")
    subplot(2,2,4)
    a=gca();
    a.mark_foreground=0;
    a.mark_background=4;
    draw_marks("невидимый передний план/ синезелёный задний план")
    // --------------------
    // С командой surf:
    // --------------------
    Z= [   0.0001    0.0013    0.0053   -0.0299   -0.1809   -0.2465   -0.1100   -0.0168   -0.0008   -0.0000
        0.0005    0.0089    0.0259   -0.3673   -1.8670   -2.4736   -1.0866   -0.1602   -0.0067    0.0000
        0.0004    0.0214    0.1739   -0.3147   -4.0919   -6.4101   -2.7589   -0.2779    0.0131    0.0020
       -0.0088   -0.0871    0.0364    1.8559    1.4995   -2.2171   -0.2729    0.8368    0.2016    0.0130
       -0.0308   -0.4313   -1.7334   -0.1148    3.0731    0.4444    2.6145    2.4410    0.4877    0.0301
       -0.0336   -0.4990   -2.3552   -2.1722    0.8856   -0.0531    2.6416    2.4064    0.4771    0.0294
       -0.0137   -0.1967   -0.8083    0.2289    3.3983    3.1955    2.4338    1.2129    0.2108    0.0125
       -0.0014   -0.0017    0.3189    2.7414    7.1622    7.1361    3.1242    0.6633    0.0674    0.0030
        0.0002    0.0104    0.1733    1.0852    2.6741    2.6725    1.1119    0.1973    0.0152    0.0005
        0.0000    0.0012    0.0183    0.1099    0.2684    0.2683    0.1107    0.0190    0.0014    0.0000];
    clf();
    f=gcf();
    f.figure_size = [610,724];
    subplot(211)
    surf(Z,'facecol','interp','ydat',101:110,'edgecol','mage')
    subplot(212)
    surf(Z,'edgeco','b','marker','d','markersiz',9,'markerfac','k','xdata',-50:-41)

## Смотрите также

- ВидЛиний
- plot
- surf
- clf
- свойства ломаной линии
- свойства поверхностей