5.15 Векторные поля

Эти функции рисуют графики для 2D и 3D векторных полей. Есть несколько типов графиков: просто векторное поле (Vect), вектора вдоль траектории (Traj), векторное поле каплями (Dew), нити тока (Flow, FlowP), трубки тока (Pipe). По умолчанию (если отсутствуют) значения x, y и z равно распределены в диапазоне осей координат. Младшие размерности массивов x, y, z и ax должны быть одинаковы. Размеры массивов ax, ay и az должны быть одинаковы. Массивы x, y и z могут быть векторами (не матрицами как ax). Строка sch задает цветовую схему (см. Цветовая схема). Строка opt задает опции графика (см. Опции команд).

Команда MGL: lines y1dat y2dat ['sch'='']
Команда MGL: lines x1dat y1dat x2dat y2dat ['sch'='']
Команда MGL: lines x1dat y1dat z1dat x2dat y2dat z2dat ['sch'='']
Метод класса mglGraph: void Lines (const mglDataA &y1, const mglDataA &y2, const char *sch="", const char *opt="")
Метод класса mglGraph: void Lines (const mglDataA &x1, const mglDataA &y1, const mglDataA &x2, const mglDataA &y2, const char *sch="", const char *opt="")
Метод класса mglGraph: void Lines (const mglDataA &x1, const mglDataA &y1, const mglDataA &z1, const mglDataA &x2, const mglDataA &y2, const mglDataA &z2, const char *sch="", const char *opt="")
Функция С: void mgl_lines_xyz (HMGL gr, HCDTx1, HCDTy1, HCDTz1, HCDTx2, HCDTy2, HCDTz2, const char *sch, const char *opt)
Функция С: void mgl_lines_xy (HMGL gr, HCDTx1, HCDTy1, HCDTx2, HCDTy2, const char *sch, const char *opt)
Функция С: void mgl_lines (HMGL gr, HCDTy1, HCDTy2, const char *sch, const char *opt)

Функция рисует линии между точками {x1, y1, z1} и {x2, y2, z2}. Строка pen задает цвет (см. Стиль линий). По умолчанию (pen="") используется текущий цвет из палитры (см. Палитра и цвета). Размер по 1-му индексу должен быть одинаков. График рисуется для каждой строки если один из массивов матрица. См. также plot, traj. См. раздел Sample ‘lines, для примеров кода и графика.

Команда MGL: traj xdat ydat udat vdat ['sch'='']
Команда MGL: traj xdat ydat zdat udat vdat wdat ['sch'='']
Метод класса mglGraph: void Traj (const mglDataA &x, const mglDataA &y, const mglDataA &ax, const mglDataA &ay, const char *sch="", const char *opt="")
Метод класса mglGraph: void Traj (const mglDataA &x, const mglDataA &y, const mglDataA &z, const mglDataA &ax, const mglDataA &ay, const mglDataA &az, const char *sch="", const char *opt="")
Функция С: void mgl_traj_xyz (HMGL gr, HCDTx, HCDTy, HCDTz, HCDTax, HCDTay, HCDTaz, const char *sch, const char *opt)
Функция С: void mgl_traj_xy (HMGL gr, HCDTx, HCDTy, HCDTax, HCDTay, const char *sch, const char *opt)

Рисует вектора {ax, ay, az} вдоль кривой {x, y, z}. Длина векторов пропорциональна \sqrt{ax^2+ay^2+az^2}. Строка pen задает цвет (см. Стиль линий). По умолчанию (pen="") используется текущий цвет из палитры (см. Палитра и цвета). Опция value задает фактор длины векторов (если не нуль) или выбирать длину пропорционально расстоянию между точками кривой (если value=0). Размер по 1-му индексу должен быть 2 или больше. График рисуется для каждой строки если один из массивов матрица. См. также vect. См. раздел Sample ‘traj, для примеров кода и графика.

Команда MGL: vect udat vdat ['sch'='']
Команда MGL: vect xdat ydat udat vdat ['sch'='']
Метод класса mglGraph: void Vect (const mglDataA &ax, const mglDataA &ay, const char *sch="", const char *opt="")
Метод класса mglGraph: void Vect (const mglDataA &x, const mglDataA &y, const mglDataA &ax, const mglDataA &ay, const char *sch="", const char *opt="")
Функция С: void mgl_vect_2d (HMGL gr, HCDT ax, HCDT ay, const char *sch, const char *opt)
Функция С: void mgl_vect_xy (HMGL gr, HCDT x, HCDT y, HCDT ax, HCDT ay, const char *sch, const char *opt)

Рисует векторное поле {ax, ay} параметрически зависящее от координат x, y на плоскости при z равном минимальному значению оси z. Длина и цвет векторов пропорциональна \sqrt{ax^2+ay^2}. Число рисуемых векторов зависит от meshnum. Вид стрелок/штрихов может быть изменён символами:

  • f’ для стрелок одинаковой длины,
  • >’, ‘<’ для стрелок начинающихся или заканчивающихся в ячейке сетки (по умолчанию центрированы),
  • .’ для рисования штрихов с точкой в начале вместо стрелок,
  • =’ для использования градиента цвета вдоль стрелок.

См. также flow, dew. См. раздел Sample ‘vect, для примеров кода и графика.

Команда MGL: vect udat vdat wdat ['sch'='']
Команда MGL: vect xdat ydat zdat udat vdat wdat ['sch'='']
Метод класса mglGraph: void Vect (const mglDataA &ax, const mglDataA &ay, const mglDataA &az, const char *sch="", const char *opt="")
Метод класса mglGraph: void Vect (const mglDataA &x, const mglDataA &y, const mglDataA &z, const mglDataA &ax, const mglDataA &ay, const mglDataA &az, const char *sch="", const char *opt="")
Функция С: void mgl_vect_3d (HMGL gr, HCDT ax, HCDT ay, HCDT az, const char *sch, const char *opt)
Функция С: void mgl_vect_xyz (HMGL gr, HCDT x, HCDT y, HCDT z, HCDT ax, HCDT ay, HCDT az, const char *sch, const char *opt)

Это 3d версия графика. Здесь массивы ax, ay, az должны трёхмерными тензорами и длина вектора пропорциональна \sqrt{ax^2+ay^2+az^2}.

Команда MGL: vect3 udat vdat wdat ['sch'='' sval]
Команда MGL: vect3 xdat ydat zdat udat vdat wdat ['sch'='' sval]
Метод класса mglGraph: void Vect3 (const mglDataA &ax, const mglDataA &ay, const mglDataA &az, const char *sch="", mreal sVal=-1, const char *opt="")
Метод класса mglGraph: void Vect3 (const mglDataA &x, const mglDataA &y, const mglDataA &z, const mglDataA &ax, const mglDataA &ay, const mglDataA &az, const char *sch="", mreal sVal=-1, const char *opt="")
Функция С: void mgl_vect3 (HMGL gr, HCDT ax, HCDT ay, HCDT az, const char *sch, mreal sVal, const char *opt)
Функция С: void mgl_vect3_xyz (HMGL gr, HCDT x, HCDT y, HCDT z, HCDT ax, HCDT ay, HCDT az, const char *sch, mreal sVal, const char *opt)

Рисует 3D векторное поле {ax, ay, az} параметрически зависящее от координат x, y, z. График рисуется на срезе sVal в направлении {‘x’, ‘y’, ‘z’}, указанном в строке sch (по умолчанию, в напралении ‘y’). Длина и цвет векторов пропорциональна \sqrt{ax^2+ay^2+az^2}. Число рисуемых векторов зависит от meshnum. Вид стрелок/штрихов может быть изменён символами:

  • f’ для стрелок одинаковой длины,
  • >’, ‘<’ для стрелок начинающихся или заканчивающихся в ячейке сетки (по умолчанию центрированы),
  • .’ для рисования штрихов с точкой в начале вместо стрелок,
  • =’ для использования градиента цвета вдоль стрелок.

См. также vect, flow, dew. См. раздел Sample ‘vect, для примеров кода и графика.

Команда MGL: dew udat vdat ['sch'='']
Команда MGL: dew xdat ydat udat vdat ['sch'='']
Метод класса mglGraph: void Dew (const mglDataA &ax, const mglDataA &ay, const char *sch="", const char *opt="")
Метод класса mglGraph: void Dew (const mglDataA &x, const mglDataA &y, const mglDataA &ax, const mglDataA &ay, const char *sch="", const char *opt="")
Функция С: void mgl_dew (HMGL gr, HCDT ax, HCDT ay, const char *sch, const char *opt)
Функция С: void mgl_dew_xy (HMGL gr, HCDT x, HCDT y, HCDT ax, HCDT ay, const char *sch, const char *opt)

Рисует капли для векторного поля {ax, ay}, параметрически зависящего от координат x, y при z равном минимальному значению оси z. Замечу, что график требует много памяти и процессорного времени для своего создания! Цвет капель пропорционален \sqrt{ax^2+ay^2}. Число капель определяется meshnum. См. также vect. См. раздел Sample ‘dew, для примеров кода и графика.

Команда MGL: flow udat vdat ['sch'='']
Команда MGL: flow xdat ydat udat vdat ['sch'='']
Метод класса mglGraph: void Flow (const mglDataA &ax, const mglDataA &ay, const char *sch="", const char *opt="")
Метод класса mglGraph: void Flow (const mglDataA &x, const mglDataA &y, const mglDataA &ax, const mglDataA &ay, const char *sch="", const char *opt="")
Функция С: void mgl_flow_2d (HMGL gr, HCDT ax, HCDT ay, const char *sch, const char *opt)
Функция С: void mgl_flow_xy (HMGL gr, HCDT x, HCDT y, HCDT ax, HCDT ay, const char *sch, const char *opt)

Рисует нити тока для векторного поля {ax, ay}, параметрически зависящего от координат x, y на плоскости при z равном минимальному значению оси z. Число нитей пропорционально значению опции value (по умолчанию 5). Цвет нитей пропорционален \sqrt{ax^2+ay^2}. Строка sch может содержать

  • цветовую схему – тёплые цвета соответствуют нормальному току (типа стока), холодные цвета соответствуют обратному току (типа источника);
  • #’ для использования нитей, начинающихся только на границе;
  • .’ для рисования сепаратрис (нитей из/в стационарных точек).
  • *’ для использования нитей, начинающихся с двумерной сетки внутри данных;
  • v’ для рисования стрелок на нитях;
  • x’, ‘z’ для рисования лент нормалей, начинающихся в плоскостях x-y и y-z соответственно.

См. также pipe, vect, tape, flow3, barwidth. См. раздел Sample ‘flow, для примеров кода и графика.

Команда MGL: flow udat vdat wdat ['sch'='']
Команда MGL: flow xdat ydat zdat udat vdat wdat ['sch'='']
Метод класса mglGraph: void Flow (const mglDataA &ax, const mglDataA &ay, const mglDataA &az, const char *sch="", const char *opt="")
Метод класса mglGraph: void Flow (const mglDataA &x, const mglDataA &y, const mglDataA &z, const mglDataA &ax, const mglDataA &ay, const mglDataA &az, const char *sch="", const char *opt="")
Функция С: void mgl_flow_3d (HMGL gr, HCDT ax, HCDT ay, HCDT az, const char *sch, const char *opt)
Функция С: void mgl_flow_xyz (HMGL gr, HCDT x, HCDT y, HCDT z, HCDT ax, HCDT ay, HCDT az, const char *sch, const char *opt)

Это 3d версия графика. Здесь массивы должны трёхмерными тензорами и цвет пропорционален \sqrt{ax^2+ay^2+az^2}.

Команда MGL: flow x0 y0 udat vdat ['sch'='']
Команда MGL: flow x0 y0 xdat ydat udat vdat ['sch'='']
Метод класса mglGraph: void FlowP (mglPoint p0, const mglDataA &ax, const mglDataA &ay, const char *sch="", const char *opt="")
Метод класса mglGraph: void FlowP (mglPoint p0, const mglDataA &x, const mglDataA &y, const mglDataA &ax, const mglDataA &ay, const char *sch="", const char *opt="")
Функция С: void mgl_flowp_2d (HMGL gr, mreal x0, mreal y0, mreal z0, HCDT ax, HCDT ay, const char *sch, const char *opt)
Функция С: void mgl_flowp_xy (HMGL gr, mreal x0, mreal y0, mreal z0, HCDT x, HCDT y, HCDT ax, HCDT ay, const char *sch, const char *opt)

Аналогично flow, но рисует одну нить из точки p0={x0,y0,z0}. Строка sch также может содержать: ‘>’ или ‘<’ для рисования линии тока только вперед или только назад от заданной точки (по умолчанию, рисует в обе стороны).

Команда MGL: flow x0 y0 z0 udat vdat wdat ['sch'='']
Команда MGL: flow x0 y0 z0 xdat ydat zdat udat vdat wdat ['sch'='']
Метод класса mglGraph: void FlowP (mglPoint p0, const mglDataA &ax, const mglDataA &ay, const mglDataA &az, const char *sch="", const char *opt="")
Метод класса mglGraph: void FlowP (mglPoint p0, const mglDataA &x, const mglDataA &y, const mglDataA &z, const mglDataA &ax, const mglDataA &ay, const mglDataA &az, const char *sch="", const char *opt="")
Функция С: void mgl_flowp_3d (HMGL gr, mreal x0, mreal y0, mreal z0, HCDT ax, HCDT ay, HCDT az, const char *sch, const char *opt)
Функция С: void mgl_flowp_xyz (HMGL gr, mreal x0, mreal y0, mreal z0, HCDT x, HCDT y, HCDT z, HCDT ax, HCDT ay, HCDT az, const char *sch, const char *opt)

Это 3d версия графика.

Команда MGL: flow3 udat vdat wdat ['sch'='']
Команда MGL: flow3 xdat ydat zdat udat vdat ['sch'='']
Метод класса mglGraph: void Flow3 (const mglDataA &ax, const mglDataA &ay, const mglDataA &az, const char *sch="", double sVal=-1, const char *opt="")
Метод класса mglGraph: void Flow3 (const mglDataA &x, const mglDataA &y, const mglDataA &z, const mglDataA &ax, const mglDataA &ay, const mglDataA &az, const char *sch="", double sVal=-1, const char *opt="")
Функция С: void mgl_flow3 (HMGL gr, HCDT ax, HCDT ay, HCDT az, const char *sch, double sVal, const char *opt)
Функция С: void mgl_flow3_xyz (HMGL gr, HCDT x, HCDT y, HCDT z, HCDT ax, HCDT ay, HCDT az, const char *sch, double sVal, const char *opt)

The function draws flow threads for the 3D vector field {ax, ay, az} parametrically depending on coordinates x, y, z. Flow threads starts from given plane. Option value set the approximate number of threads (default is 5). String sch may contain:

  • color scheme – up-half (warm) corresponds to normal flow (like attractor), bottom-half (cold) corresponds to inverse flow (like source);
  • x’, ‘z’ for normal of starting plane (default is y-direction);
  • v’ for drawing arrows on the threads;
  • t’ for drawing tapes of normals in x-y and y-z planes.

See also flow, pipe, vect. См. раздел Sample ‘flow3, для примеров кода и графика.

Команда MGL: grad pdat ['sch'='']
Команда MGL: grad xdat ydat pdat ['sch'='']
Команда MGL: grad xdat ydat zdat pdat ['sch'='']
Метод класса mglGraph: void Grad (const mglDataA &phi, const char *sch="", const char *opt="")
Метод класса mglGraph: void Grad (const mglDataA &x, const mglDataA &y, const mglDataA &phi, const char *sch="", const char *opt="")
Метод класса mglGraph: void Grad (const mglDataA &x, const mglDataA &y, const mglDataA &z, const mglDataA &phi, const char *sch="", const char *opt="")
Функция С: void mgl_grad (HMGL gr, HCDT phi, const char *sch, const char *opt)
Функция С: void mgl_grad_xy (HMGL gr, HCDT x, HCDT y, HCDT phi, const char *sch, const char *opt)
Функция С: void mgl_grad_xyz (HMGL gr, HCDT x, HCDT y, HCDT z, HCDT phi, const char *sch, const char *opt)

Рисует линии градиента скалярного поля phi[i,j] (или phi[i,j,k] в 3d случае) заданного параметрически {x[i,j,k], y[i,j,k], z[i,j,k]}. Число линий пропорционально значению опции value (по умолчанию 5). См. также dens, cont, flow.

Команда MGL: pipe udat vdat ['sch'='' r0=0.05]
Команда MGL: pipe xdat ydat udat vdat ['sch'='' r0=0.05]
Метод класса mglGraph: void Pipe (const mglDataA &ax, const mglDataA &ay, const char *sch="", mreal r0=0.05, const char *opt="")
Метод класса mglGraph: void Pipe (const mglDataA &x, const mglDataA &y, const mglDataA &ax, const mglDataA &ay, const char *sch="", mreal r0=0.05, const char *opt="")
Функция С: void mgl_pipe_2d (HMGL gr, HCDT ax, HCDT ay, const char *sch, mreal r0, const char *opt)
Функция С: void mgl_pipe_xy (HMGL gr, HCDT x, HCDT y, HCDT ax, HCDT ay, const char *sch, mreal r0, const char *opt)

Рисует трубки тока для векторного поля {ax, ay}, параметрически зависящего от координат x, y на плоскости при z равном минимальному значению оси z. Число трубок пропорционально значению опции value. Цвет и радиус трубок пропорционален \sqrt{ax^2+ay^2}. Тёплые цвета соответствуют нормальному току (типа стока). Холодные цвета соответствуют обратному току (типа источника). Параметр r0 задает радиус трубок. При r0<0 радиус трубок обратно пропорционален их амплитуде. См. также flow, vect. См. раздел Sample ‘pipe, для примеров кода и графика.

Команда MGL: pipe udat vdat wdat ['sch'='' r0=0.05]
Команда MGL: pipe xdat ydat zdat udat vdat wdat ['sch'='' r0=0.05]
Метод класса mglGraph: void Pipe (const mglDataA &ax, const mglDataA &ay, const mglDataA &az, const char *sch="", mreal r0=0.05, const char *opt="")
Метод класса mglGraph: void Pipe (const mglDataA &x, const mglDataA &y, const mglDataA &z, const mglDataA &ax, const mglDataA &ay, const mglDataA &az, const char *sch="", mreal r0=0.05, const char *opt="")
Функция С: void mgl_pipe_3d (HMGL gr, HCDT ax, HCDT ay, HCDT az, const char *sch, mreal r0, const char *opt)
Функция С: void mgl_pipe_xyz (HMGL gr, HCDT x, HCDT y, HCDT z, HCDT ax, HCDT ay, HCDT az, const char *sch, mreal r0, const char *opt)

Это 3d версия графика. Здесь массивы ax, ay, az должны трёхмерными тензорами и цвет пропорционален \sqrt{ax^2+ay^2+az^2}.