5.5.3 Рисование в памяти

Эти функции возвращают созданный растровый рисунок, его ширину и высоту. В дальнейшем его можно использовать в любой графической библиотеке (см. также, “Оконные” классы) или сохранить в файл (см. также, Экспорт в файл).

Метод класса mglGraph: const unsigned char * GetRGB ()
Метод класса mglGraph: void GetRGB (char *buf, int size)
Метод класса mglGraph: void GetBGRN (char *buf, int size)
Функция С: const unsigned char * mgl_get_rgb (HMGL gr)

Возвращает растровое изображение в формате RGB для текущего кадра. Формат каждого элемента (пикселя): {red, green, blue}. Число элементов Width*Height. Положение элемента {i,j} есть [3*i + 3*Width*j] (или [4*i + 4*Width*j] для GetBGRN()). В Python вы должны предоставить буфер buf достаточного размера size, т.е. код должен выглядеть следующим образом (для Python)

from mathgl import *
gr = mglGraph();
bits='\t';
bits=bits.expandtabs(4*gr.GetWidth()*gr.GetHeight());
gr.GetBGRN(bits, len(bits));
Метод класса mglGraph: const unsigned char * GetRGBA ()
Метод класса mglGraph: void GetRGBA (char *buf, int size)
Функция С: const unsigned char * mgl_get_rgba (HMGL gr)

Возвращает растровое изображение в формате RGBA для текущего кадра. Формат каждого элемента (пикселя): {red, green, blue, alpha}. Число элементов Width*Height. Положение элемента {i,j} есть [4*i + 4*Width*j].

Метод класса mglGraph: int GetWidth ()
Метод класса mglGraph: int GetHeight ()
Функция С: int mgl_get_width (HMGL gr)
Функция С: int mgl_get_height (HMGL gr)

Возвращает ширину и высоту изображения.

Метод класса mglGraph: mglPoint CalcXYZ (int xs, int ys)
Функция С: void mgl_calc_xyz (HMGL gr, int xs, int ys, mreal *x, mreal *y, mreal *z)

Вычисляет 3D координаты {x,y,z} для экранной точки {xs,ys}. В данный момент игнорируется перспектива графика и формулы перехода в криволинейные координаты. Вычисления производятся для последнего использованного InPlot (см. Матрица преобразования).

Метод класса mglGraph: mglPoint CalcScr (mglPoint p)
Функция С: void mgl_calc_scr (HMGL gr, mreal x, mreal y, mreal z, int *xs, int *ys)

Вычисляет экранные координаты {xs,ys} для 3D координат {x,y,z}. Вычисления производятся для последнего использованного InPlot (см. Матрица преобразования).

Метод класса mglGraph: void SetObjId (int id)
Функция С: void mgl_set_obj_id (HMGL gr, int id)

Задает числовой идентификатор для объектов или subplot/inplot.

Метод класса mglGraph: int GetObjId (int xs, int ys)
Функция С: int mgl_get_obj_id (HMGL gr, int xs, int ys)

Возвращает числовой идентификатор верхнего объекта в точке {xs, ys} рисунка. Следует отметить, что все графики из одной строки MGL скрипта имеют одинаковый идентификатор.

Метод класса mglGraph: int GetSplId (int xs, int ys)
Функция С: int mgl_get_spl_id (HMGL gr, int xs, int ys)

Возвращает числовой идентификатор верхнего "подграфика" в точке {xs, ys} рисунка.

Метод класса mglGraph: void Highlight (int id)
Функция С: void mgl_highlight (HMGL gr, int id)

Выделяет объект с заданным id.

Метод класса mglGraph: long IsActive (int xs, int ys, int d=1)
Функция С: long mgl_is_active (HMGL gr, int xs, int ys, int d)

Проверяет близка ли точка {xs, ys} к активной точке (т.е. mglBase::Act) с точностью d и возвращает индекс активной точки или -1 если не найдено. Активные точки – специальные точки, которые характеризуют примитивы (например, вершины). Это функция только для опытных пользователей.

Метод класса mglGraph: long SetDrawReg (int nx=1, int ny=1, int m=0)
Функция С: long mgl_set_draw_reg (HMGL gr, int nx, int ny, int m)

Ограничивает рисование прямоугольной областью m-ой клетки матрицы размером nx*ny (аналогично subplot). Функция может бытб использована для ускорения вывода путем уменьшения выводимых примитивов. Это функция только для опытных пользователей.