[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4.2 Настройка графика

Функции и переменные в этой группе влияют на вид всего рисунка. Соответственно они должны располагаться перед вызовом функций непосредственно рисующих графики.

Метод класса mglGraph: void DefaultPlotParam ()
Функция С: void mgl_set_def_param (HMGL gr)

Устанавливает все настройки по умолчанию.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4.2.1 Прозрачность

Эти функции и переменные настраивают тип и степень прозрачности поверхностей. Главной является функция alpha, которая включает/выключает прозрачность для всего графика. Функция alphadef устанавливает величину alpha-канала по умолчанию. Наконец, функция transptype задает тип прозрачности. См. раздел Transparency and lighting, для примеров кода и графика.

Команда MGL: alpha [val=on]
Метод класса mglGraph: void Alpha (bool enable)
Функция С: void mgl_set_alpha (HMGL gr, int enable)

Включает/выключает прозрачность и возвращает свое предыдущее состояние. По умолчанию прозрачность выключена. Функция включает прозрачность для всего рисунка.

Команда MGL: alphadef val
Метод класса mglGraph: void SetAlphaDef (mreal val)
Функция С: void mgl_set_alpha_default (HMGL gr, mreal alpha)

Задает значение прозрачности по умолчанию для всех графиков. Значение по умолчанию 0.5.

Команда MGL: transptype val
Метод класса mglGraph: void SetTranspType (int type)
Функция С: void mgl_set_transp_type (HMGL gr, int type)

Задает тип прозрачности. Обычная прозрачность (‘0’) – "закрытые" объекты видны меньше чем закрывающие. Этот режим некорректно отображается в OpenGL (mglGraphGL) для нескольких перекрывающихся поверхностей. "Стеклянная" прозрачность (‘1’) – закрытые и закрывающие объекты единообразно ослабляют интенсивность света (по RGB каналам). "Ламповая" прозрачность (‘2’) – закрытые и закрывающие объекты являются источниками дополнительного освещения (рекомендую установить SetAlphaDef(0.3) или меньше в этом случае). См. раздел Types of transparency, для примеров кода и графика.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4.2.2 Освещение

Эти функции настраивают освещение графика. Главная функция light включает/выключает освещение графиков построенных после ее вызова (в OpenGL работает сразу для всего рисунка). MathGL поддерживает до 10 независимых источников света. Но в режиме OpenGL можно использовать только первые 8 из них. Положение, цвет, яркость каждого источника света можно задавать по отдельности. По умолчанию включен только первый (с порядковым номером 0) источник света белого цвета, расположенный сверху.

Команда MGL: light [val=on]
Метод класса mglGraph: bool Light (bool enable)
Функция С: void mgl_set_light (HMGL gr, int enable)

Включает/выключает освещение графика и возвращает предыдущее состояние. По умолчанию освещение выключено.

Команда MGL: light num val
Метод класса mglGraph: void Light (int n, bool enable)
Функция С: void mgl_set_light_n (HMGL gr, int n, int enable)

Включает/выключает n-ый источник света.

Команда MGL: light num xdir ydir zdir ['col'='w' br=0.5]
Команда MGL: light num xdir ydir zdir xpos ypos zpos ['col'='w' br=0.5]
Метод класса mglGraph: void AddLight (int n, mglPoint d, char c='w', mreal bright=0.5, mreal ap=0)
Метод класса mglGraph: void AddLight (int n, mglPoint r, mglPoint d, char c='w', mreal bright=0.5, mreal ap=0)
Функция С: void mgl_add_light (HMGL gr, int n, mreal dx, mreal dy, mreal dz)
Функция С: void mgl_add_light_ext (HMGL gr, int n, mreal dx, mreal dy, mreal dz, char c, mreal bright, mreal ap)
Функция С: void mgl_add_light_loc (HMGL gr, int n, mreal rx, mreal ry, mreal rz, mreal dx, mreal dy, mreal dz, char c, mreal bright, mreal ap)

Добавляет источник света с номером n в положение p с цветом c и яркостью bright, которая должна быть в диапазоне [0,1]. Если указано положение источника r и оно не NAN, то источник считается локальным, иначе источник полагается бесконечно удалённым (для более быстрого рисования).

Метод класса mglGraph: void SetDifLight (bool enable)
Функция С: void mgl_set_light_dif (HMGL gr, int enable)

Задает использование диффузного освещения (только для локальных источников света).

Команда MGL: ambient val
Метод класса mglGraph: void SetAmbient (mreal bright=0.5)
Функция С: void mgl_set_ambbr (HMGL gr, mreal bright)

Задает яркость рассеянного освещения. Значение должно быть в диапазоне [0,1].


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4.2.3 Туман

Команда MGL: fog val [dz=0.25]
Метод класса mglGraph: void Fog (mreal d, mreal dz=0.25)
Функция С: void mgl_set_fog (HMGL gr, mreal d, mreal dz)

Имитирует туман на графике. Туман начинается на относительном расстоянии dz от точки обзора и его плотность растет экспоненциально вглубь по закону ~ 1-exp(-d*z). Здесь z – нормализованная на 1 глубина графика. Если d=0 то туман отсутствует. См. раздел Adding fog, для примеров кода и графика.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4.2.4 Базовые размеры

Эти функции задают величины большинства параметров графика, включая размеры маркеров, стрелок, толщину линий и т.д. Как и любые другие настройки, они подействуют только на графики созданные после изменения настроек.

Команда MGL: barwidth val
Метод класса mglGraph: void SetBarWidth ( mreal val)
Функция С: void mgl_set_bar_width (HMGL gr, mreal val)

Задает относительный размер прямоугольников в bars, barh, boxplot, candle. Значение по умолчанию 0.7.

Команда MGL: marksize val
Метод класса mglGraph: void SetMarkSize (mreal val)
Функция С: void mgl_set_mark_size (HMGL gr, mreal val)

Задает размер маркеров для 1D графики. Значение по умолчанию 1.

Команда MGL: arrowsize val
Метод класса mglGraph: void SetArrowSize (mreal val)
Функция С: void mgl_set_arrow_size (HMGL gr, mreal val)

Задает размер стрелок для 1D графики, линий и кривых (см. Рисование примитивов). Значение по умолчанию 1.

Команда MGL: meshnum val
Метод класса mglGraph: void SetMeshNum (int val)
Функция С: void mgl_set_meshnum (HMGL gr, int num)

Задает ориентировочное число линий в mesh, fall, grid и число стрелок (штрихов) в vect, dew и число ячеек в cloud. По умолчанию (=0) рисуются все линии, стрелки, ячейки.

Команда MGL: facenum val
Метод класса mglGraph: void SetFaceNum (int val)
Функция С: void mgl_set_facenum (HMGL gr, int num)

Задает ориентировочное число видимых граней. Может быть использована для ускорения рисования за счет более грубого рисунка. По умолчанию (=0) рисуются все грани.

Команда MGL: plotid 'id'
Метод класса mglGraph: void SetPlotId (const char *id)
Функция С: void mgl_set_plotid (HMGL gr, const char *id)

Задает имя графика для сохранения в файл (например, в окне FLTK).

Метод класса mglGraph: const char * GetPlotId ()
Функция С: const char * mgl_get_plotid (HMGL gr)

Возвращает имя графика для сохранения в файл (например, в окне FLTK).


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4.2.5 Обрезание

Эти функции задают условия когда точка будет исключена (вырезана) из рисования. Замечу, что все точки со значением(-ями) NAN по одной из координат или амплитуде автоматически исключаются из рисования. См. раздел Cutting sample, для примеров кода и графика.

Команда MGL: cut val
Метод класса mglGraph: void SetCut (bool val)
Функция С: void mgl_set_cut (HMGL gr, int val)

Задает обрезание точек за пределами осей координат. Если true то такие точки исключаются из рисования (это по умолчанию) иначе они проецируются на ограничивающий прямоугольник.

Команда MGL: cut x1 y1 z1 x2 y2 z2
Метод класса mglGraph: void SetCutBox (mglPoint p1, mglPoint p1)
Функция С: void mgl_set_cut_box (HMGL gr, mreal x1, mreal y1, mreal z1, mreal x2, mreal y2, mreal z2)

Задает границы параллелепипеда внутри которого точки не рисуются. Если границы одинаковы (переменные равны), то параллелепипеда считается пустым.

Команда MGL: cut 'cond'
Метод класса mglGraph: void CutOff (const char *cond)
Функция С: void mgl_set_cutoff (HMGL gr, const char *cond)

Задает условие обрезания по формуле cond. Это условие исключает точки из рисования если результат вычисления формулы не равен нулю. Установите аргумент "" для выключения условия обрезания.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4.2.6 Шрифты

Команда MGL: font 'fnt' [val=6]

Задает стиль и размер шрифта. Вначале используется ‘:rC’ – прямой шрифт с выравниванием по центру. По умолчанию размер подписей оси координат в 1.4 раза больше. См. также см. Стиль текста.

Команда MGL: rotatetext val
Метод класса mglGraph: void SetRotatedText (bool val)
Функция С: void mgl_set_rotated_text (HMGL gr, int val)

Включает/выключает вращение меток и подписей осей координат вдоль оси.

MGL command: loadfont ['name'='']
Метод класса mglGraph: void LoadFont (const char *name, const char *path="")
Функция С: void mgl_load_font (HMGL gr, const char *name, const char *path)

Загружает начертание шрифта из файла path/name. Пустая строка загрузит шрифт по умолчанию.

Метод класса mglGraph: void SetFontDef (const char *fnt)
Функция С: void mgl_set_font_def (HMGL gr, const char * val)

Задает стиль шрифта (см. Вывод текста). По умолчанию используется ‘rC’ – прямой шрифт с выравниванием по центру.

Метод класса mglGraph: void SetFontSize (mreal val)
Функция С: void mgl_set_font_size (HMGL gr, mreal val)

Задает базовый размер шрифта. По умолчанию размер подписей оси координат в 1.4 раза больше.

Метод класса mglGraph: void SetFontSizePT (mreal cm, int dpi=72)

Задает размер шрифта в пунктах для заданного DPI (по умолчанию 16 pt для dpi=72).

Метод класса mglGraph: inline void SetFontSizeCM (mreal cm, int dpi=72)

Задает размер шрифта в сантиметрах для заданного DPI (по умолчанию 0.56 см = 16 pt).

Метод класса mglGraph: inline void SetFontSizeIN (mreal cm, int dpi=72)

Задает размер шрифта в дюймах для заданного DPI (по умолчанию 0.22 in = 16 pt).

Метод класса mglGraph: void CopyFont (mglGraph * from)
Функция С: void mgl_copy_font (HMGL gr, HMGL gr_from)

Копирует начертание шрифта из другого объекта mglGraph.

Метод класса mglGraph: void RestoreFont ()
Функция С: void mgl_restore_font (HMGL gr)

Восстанавливает начертание шрифта по умолчанию.

Функция С: void mgl_def_font (const char *name, const char *path)

Загружает начертание шрифта по умолчанию (для всех вновь создаваемых HMGL/mglGraph объектов) из файла path/name.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4.2.7 Палитра и цвета

Команда MGL: palette 'colors'
Метод класса mglGraph: void SetPalette (const char *colors)
Функция С: void mgl_set_palette (HMGL gr, const char *colors)

Задает палитру как последовательность цветов. Значение по умолчанию "Hbgrcmyhlnqeup", что соответствует цветам: темно серый ‘H’, синий ‘b’, зелёный ‘g’, красный ‘r’, голубой ‘c’, малиновый ‘m’, жёлтый ‘y’, серый ‘h’, сине-зелёный ‘l’, небесно-голубой ‘n’, оранжевый ‘q’, желто-зелёный ‘e’, сине-фиолетовый ‘u’, фиолетовый ‘p’. Палитра в основном используется в 1D графиках (см. 1D графики) для кривых с неопределённым стилем линии. Внутренний счетчик цвета будет сброшен при любом изменении палитры, включая скрытые (например, функциями box или axis).

Метод класса mglGraph: void SetDefScheme (const char *sch)
Функция С: void mgl_set_def_sch (HMGL gr, const char *sch)

Устанавливает sch в качестве цветовой схемы по умолчанию. Начальное значение "BbcyrR".

Функция С: void mgl_set_color (char id, mreal r, mreal g, mreal b)

Задает RGB значения для цвета с заданным id.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4.2.8 Обработка ошибок

Обычно вы должны сбросить признак ошибки с помощью SetWarn(0); перед построением и проверить GetWarnCode() или Message() на наличие ошибок после построения. Только последнее предупреждение сохраняется. Замечу, что все предупреждения/ошибки в MathGL не являются критичными – в худшем из вариантов соответствующий график просто не будет построен.

Метод класса mglGraph: void SetWarn (int code, const char *info="")
Функция С: void mgl_set_warn (HMGL gr, int code, const char *info)

Задает код предупреждения. Обычно вызывается только для очистки предупреждений (SetWarn(0);) или внутри библиотеки. Текст info будет добавлен к предупреждениям как есть при code<0.

Метод класса mglGraph: const char * Message ()
Функция С: const char * mgl_get_mess (HMGL gr)

Возвращает текст предупреждений о причине отсутствия графика. Если возвращаемая строка пустая, то сообщений нет.

Метод класса mglGraph: int GetWarnCode ()
Функция С: int mgl_get_warn_code (HMGL gr)

Возвращает код сообщения о причине отсутствия графика. Возможные значения:

mglWarnNone=0

Предупреждений нет

mglWarnDim

Неправильные или несовместимые размеры данных

mglWarnLow

Размеры данных слишком малы

mglWarnNeg

Минимальное значение отрицательно

mglWarnFile

Файл не найден или указаны неправильные размерности

mglWarnMem

Не достаточно памяти

mglWarnZero

Значение данных равно нулю

mglWarnLegA

Слишком много записей в легенде

mglWarnLeg

Нет записей в легенде

mglWarnSlc

Индекс среза вне данных

mglWarnCnt

Число линий уровня меньше или равно нулю

mglWarnOpen

Не могу открыть файл

mglWarnLId

Light: ID вне допустимых значений

mglWarnSize

Setsize: размер(ы) равны нулю или отрицательны

mglWarnFmt

Формат не поддерживается


[ < ] [ > ]   [ << ] [ Up ] [ >> ]

This document was generated by Autobuild on September 28, 2013 using texi2html 1.82.