5.13 3D графики

Эти функции строят графики для трехмерных (3D) массивов. Трёхмерными считаются массивы, зависящие от трёх параметров (индексов) подобно матрице f(x_i,y_j,z_k), i=1...n, j=1...m, k=1...l. По умолчанию (если отсутствуют) значения x, y, z равно распределены в диапазоне осей координат. Младшие размерности массивов x, y, z должны быть одинаковы x.nx=a.nx && y.nx=a.ny && z.nz=a.nz или x.nx=y.nx=z.nx=a.nx && x.ny=y.ny=z.ny=a.ny && x.nz=y.nz=z.nz=a.nz. Массивы x, y и z могут быть векторами (не матрицами как a). Строка sch задает цветовую схему (см. Цветовая схема). Строка opt задает опции графика (см. Опции команд).

Команда MGL: surf3 adat val ['sch'='']
Команда MGL: surf3 xdat ydat zdat adat val ['sch'='']
Метод класса mglGraph: void Surf3 (mreal val, const mglDataA &a, const char *sch="", const char *opt="")
Метод класса mglGraph: void Surf3 (mreal val, const mglDataA &x, const mglDataA &y, const mglDataA &z, const mglDataA &a, const char *sch="", const char *opt="")
Функция С: void mgl_surf3_val (HMGL gr, mreal val, HCDT a, const char *sch, const char *opt)
Функция С: void mgl_surf3_xyz_val (HMGL gr, mreal val, HCDT x, HCDT y, HCDT z, HCDT a, const char *sch, const char *opt)

Рисует поверхность уровня для 3d массива, заданного параметрически a[i,j,k](x[i,j,k], y[i,j,k], z[i,j,k]) при a(x,y,z)=val. Если sch содержит ‘#’, то рисуется сетчатая поверхность. Если sch содержит ‘.’, то рисуется поверхность из точек. Замечу, что возможно некорректная отрисовка граней вследствие неопределённости построения сечения если поверхность пересекает ячейку данных 2 и более раз. См. также cloud, dens3, surf3c, surf3a, axial. См. раздел Sample ‘surf3, для примеров кода и графика.

Команда MGL: surf3 adat ['sch'='']
Команда MGL: surf3 xdat ydat zdat adat ['sch'='']
Метод класса mglGraph: void Surf3 (const mglDataA &a, const char *sch="", const char *opt="")
Метод класса mglGraph: void Surf3 (const mglDataA &x, const mglDataA &y, const mglDataA &z, const mglDataA &a, const char *sch="", const char *opt="")
Функция С: void mgl_surf3 (HMGL gr, HCDT a, const char *sch, const char *opt)
Функция С: void mgl_surf3_xyz (HMGL gr, HCDT x, HCDT y, HCDT z, HCDT a, const char *sch, const char *opt)

Аналогично предыдущему для num поверхностей уровня равномерно распределённых в диапазоне изменения цвета. Величина num равна значению параметра value в опциях opt (по умолчанию 3).

Команда MGL: cloud adat ['sch'='']
Команда MGL: cloud xdat ydat zdat adat ['sch'='']
Метод класса mglGraph: void Cloud (const mglDataA &a, const char *sch="", const char *opt="")
Метод класса mglGraph: void Cloud (const mglDataA &x, const mglDataA &y, const mglDataA &z, const mglDataA &a, const char *sch="", const char *opt="")
Функция С: void mgl_cloud (HMGL gr, HCDT a, const char *sch, const char *opt)
Функция С: void mgl_cloud_xyz (HMGL gr, HCDT x, HCDT y, HCDT z, HCDT a, const char *sch, const char *opt)

Рисует облачный график для 3d массива, заданного параметрически a[i,j,k](x[i,j,k], y[i,j,k], z[i,j,k]). График состоит из кубиков с цветом и прозрачностью пропорциональной значениям a. Результат похож на облако – малые значения прозрачны, а большие нет. Число кубиков зависит от meshnum. Если sch содержит ‘.’, то будет построен график более низкого качества, но с заметно меньшим использованием памяти. Если sch содержит ‘i’, то прозрачность будет инвертирована, т.е. области с более высокими значениями будут более прозрачны, а с более низким – менее прозрачны. См. также surf3, meshnum. См. раздел Sample ‘cloud, для примеров кода и графика.

Команда MGL: dens3 adat ['sch'='' sval=-1]
Команда MGL: dens3 xdat ydat zdat adat ['sch'='' sval=-1]
Метод класса mglGraph: void Dens3 (const mglDataA &a, const char *sch="", mreal sVal=-1, const char *opt="")
Метод класса mglGraph: void Dens3 (const mglDataA &x, const mglDataA &y, const mglDataA &z, const mglDataA &a, const char *sch="", mreal sVal=-1, const char *opt="")
Функция С: void mgl_dens3 (HMGL gr, HCDT a, const char *sch, mreal sVal, const char *opt)
Функция С: void mgl_dens3_xyz (HMGL gr, HCDT x, HCDT y, HCDT z, HCDT a, const char *sch, mreal sVal, const char *opt)

Рисует график плотности для 3d массива, заданного параметрически a[i,j,k](x[i,j,k], y[i,j,k], z[i,j,k]). График рисуется на срезе sVal в направлении {‘x’, ‘y’, ‘z’}, указанном в строке sch (по умолчанию, в напралении ‘y’). Если sch содержит ‘#’, то на срезе рисуется сетка. См. также cont3, contf3, dens, grid3. См. раздел Sample ‘dens3, для примеров кода и графика.

Команда MGL: cont3 vdat adat ['sch'='' sval=-1]
Команда MGL: cont3 vdat xdat ydat zdat adat ['sch'='' sval=-1]
Метод класса mglGraph: void Cont3 (const mglDataA &v, const mglDataA &a, const char *sch="", mreal sVal=-1, const char *opt="")
Метод класса mglGraph: void Cont3 (const mglDataA &v, const mglDataA &x, const mglDataA &y, const mglDataA &z, const mglDataA &a, const char *sch="", mreal sVal=-1, const char *opt="")
Функция С: void mgl_cont3_val (HMGL gr, HCDT v, HCDT a, const char *sch, mreal sVal, const char *opt)
Функция С: void mgl_cont3_xyz_val (HMGL gr, HCDT v, HCDT x, HCDT y, HCDT z, HCDT a, const char *sch, mreal sVal, const char *opt)

Рисует линии уровня для 3d массива, заданного параметрически a[i,j,k](x[i,j,k], y[i,j,k], z[i,j,k]). Линии рисуются для значений из массива v на срезе sVal в направлении {‘x’, ‘y’, ‘z’}, указанном в строке sch (по умолчанию, в напралении ‘y’). Если sch содержит ‘#’, то на срезе рисуется сетка. Если sch содержит ‘t’ или ‘T’, то значения v[k] будут выведены вдоль контуров над (или под) кривой. См. также dens3, contf3, cont, grid3. См. раздел Sample ‘cont3, для примеров кода и графика.

Команда MGL: cont3 adat ['sch'='' sval=-1]
Команда MGL: cont3 xdat ydat zdat adat ['sch'='' sval=-1]
Метод класса mglGraph: void Cont3 (const mglDataA &a, const char *sch="", mreal sVal=-1, const char *opt="")
Метод класса mglGraph: void Cont3 (const mglDataA &x, const mglDataA &y, const mglDataA &z, const mglDataA &a, const char *sch="", mreal sVal=-1, const char *opt="")
Функция С: void mgl_cont3 (HMGL gr, HCDT a, const char *sch, mreal sVal, const char *opt)
Функция С: void mgl_cont3_xyz (HMGL gr, HCDT x, HCDT y, HCDT z, HCDT a, const char *sch, mreal sVal, const char *opt)

Аналогично предыдущему для num линий уровня равномерно распределённых в диапазоне изменения цвета. Величина num равна значению параметра value в опциях opt (по умолчанию 7).

Команда MGL: contf3 vdat adat ['sch'='' sval=-1]
Команда MGL: contf3 vdat xdat ydat zdat adat ['sch'='' sval=-1]
Метод класса mglGraph: void Contf3 (const mglDataA &v, const mglDataA &a, const char *sch="", mreal sVal=-1, const char *opt="")
Метод класса mglGraph: void Contf3 (const mglDataA &v, const mglDataA &x, const mglDataA &y, const mglDataA &z, const mglDataA &a, const char *sch="", mreal sVal=-1, const char *opt="")
Функция С: void mgl_contf3_val (HMGL gr, HCDT v, HCDT a, const char *sch, mreal sVal, const char *opt)
Функция С: void mgl_contf3_xyz_val (HMGL gr, HCDT v, HCDT x, HCDT y, HCDT z, HCDT a, const char *sch, mreal sVal, const char *opt)

Рисует закрашенные линии (контуры) уровня для 3d массива, заданного параметрически a[i,j,k](x[i,j,k], y[i,j,k], z[i,j,k]). Линии рисуются для значений из массива v на срезе sVal в направлении {‘x’, ‘y’, ‘z’}, указанном в строке sch (по умолчанию, в напралении ‘y’). Если sch содержит ‘#’, то на срезе рисуется сетка. См. также dens3, cont3, contf, grid3. См. раздел Sample ‘contf3, для примеров кода и графика.

Команда MGL: contf3 adat ['sch'='' sval=-1]
Команда MGL: contf3 xdat ydat zdat adat ['sch'='' sval=-1]
Метод класса mglGraph: void Contf3 (const mglDataA &a, const char *sch="", mreal sVal=-1, const char *opt="")
Метод класса mglGraph: void Contf3 (const mglDataA &x, const mglDataA &y, const mglDataA &z, const mglDataA &a, const char *sch="", mreal sVal=-1, const char *opt="")
Функция С: void mgl_contf3 (HMGL gr, HCDT a, const char *sch, mreal sVal, const char *opt)
Функция С: void mgl_contf3_xyz (HMGL gr, HCDT x, HCDT y, HCDT z, HCDT a, const char *sch, mreal sVal, const char *opt)

Аналогично предыдущему для num закрашенных линий (контуров) уровня равномерно распределённых в диапазоне изменения цвета. Величина num равна значению параметра value в опциях opt (по умолчанию 7).

Команда MGL: grid3 adat ['sch'='' sval=-1]
Команда MGL: grid3 xdat ydat zdat adat ['sch'='' sval=-1]
Метод класса mglGraph: void Grid3 (const mglDataA &a, const char *sch="", mreal sVal=-1, const char *opt="")
Метод класса mglGraph: void Grid3 (const mglDataA &x, const mglDataA &y, const mglDataA &z, const mglDataA &a, const char *sch="", mreal sVal=-1, const char *opt="")
Функция С: void mgl_grid3 (HMGL gr, HCDT a, const char *sch, mreal sVal, const char *opt)
Функция С: void mgl_grid3_xyz (HMGL gr, HCDT x, HCDT y, HCDT z, HCDT a, const char *sch, mreal sVal, const char *opt)

Рисует сетку для 3d массива, заданного параметрически a[i,j,k](x[i,j,k], y[i,j,k], z[i,j,k]). График рисуется на срезе sVal в направлении {‘x’, ‘y’, ‘z’}, указанном в строке sch (по умолчанию, в напралении ‘y’). См. также cont3, contf3, dens3, grid2, meshnum.

Команда MGL: dcont vdat adat bdat ['sch'='']
Команда MGL: dcont vdat xdat ydat zdat adat bdat ['sch'='']
Метод класса mglGraph: void DCont (const mglDataA &v, const mglDataA &a, const mglDataA &b, const char *sch="", const char *opt="")
Метод класса mglGraph: void DCont (const mglDataA &v, const mglDataA &x, const mglDataA &y, const mglDataA &z, const mglDataA &a, const mglDataA &b, const char *sch="", const char *opt="")
Функция С: void mgl_dcont_val (HMGL gr, HCDT v, HCDT a, HCDT b, const char *sch, const char *opt)
Функция С: void mgl_dcont_xyz_val (HMGL gr, HCDT v, HCDT x, HCDT y, HCDT z, HCDT a, HCDT b, const char *sch, const char *opt)

Рисует линии пересечений поверхностей постоянного уровня для 3d данных a, b заданных параметрически a[i,j,k](x[i,j,k], y[i,j,k], z[i,j,k]). Поверхности уровня берутся при значениях функции равных элементам массива v. См. также cont, cont3. См. раздел Sample ‘dcont, для примеров кода и графика.

Команда MGL: dcont adat bdat ['sch'='' sval=-1]
Команда MGL: dcont xdat ydat zdat adat bdat ['sch'='' sval=-1]
Метод класса mglGraph: void DCont (const mglDataA &a, const mglDataA &b, const char *sch="", const char *opt="")
Метод класса mglGraph: void DCont (const mglDataA &x, const mglDataA &y, const mglDataA &z, const mglDataA &a, const mglDataA &b, const char *sch="", const char *opt="")
Функция С: void mgl_dcont (HMGL gr, HCDT a, HCDT b, const char *sch, mreal sVal, const char *opt)
Функция С: void mgl_HCDT b, cont_xyz (HMGL gr, HCDT x, HCDT y, HCDT z, HCDT a, HCDT b, const char *sch, const char *opt)

Аналогично предыдущему для num уровней равномерно распределённых в диапазоне изменения цвета. Величина num равна значению параметра value в опциях opt (по умолчанию 7).

Команда MGL: beam tr g1 g2 adat rval ['sch'='' flag=0 num=3]
Метод класса mglGraph: void Beam (const mglDataA &tr, const mglDataA &g1, const mglDataA &g2, const mglDataA &a, mreal r, const char *stl="", int flag=0, int num=3)
Метод класса mglGraph: void Beam (mreal val, const mglDataA &tr, const mglDataA &g1, const mglDataA &g2, const mglDataA &a, mreal r, const char *stl="", int flag=0)
Функция С: void mgl_beam (HMGL gr, HCDT tr, HCDT g1, HCDT g2, HCDT a, mreal r, const char *stl, int flag, int num)
Функция С: void mgl_beam_val (HMGL gr, mreal val, HCDT tr, HCDT g1, HCDT g2, HCDT a, mreal r, const char *stl, int flag)

Рисует поверхность уровня для 3d массива a при постоянном значении a=val. Это специальный тип графика для a заданного в сопровождающей системе координат вдоль кривой tr с ортами g1, g2 и с поперечным размером r. Переменная flag – битовый флаг: ‘0x1’ - рисовать в сопровождающих (не лабораторных) координатах; ‘0x2’ - рисовать проекцию на плоскость \rho-z; ‘0x4’ - рисовать нормированное в каждом сечении поле. Размеры массивов по 1-му индексу tr, g1, g2 должны быть nx>2. Размеры массивов по 2-му индексу tr, g1, g2 и размер по 3-му индексу массива a должны быть одинаковы. См. также surf3.