5.7 Рисование примитивов

Эти функции рисуют рисуют простые объекты типа линий, точек, сфер, капель, конусов, и т.д.

Команда MGL: ball x y ['col'='r.']
Команда MGL: ball x y z ['col'='r.']
Метод класса mglGraph: void Ball (mglPoint p, char col='r')
Метод класса mglGraph: void Mark (mglPoint p, const char *mark)
Функция С: void mgl_mark (HMGL gr, mreal x, mreal y, mreal z, const char *mark)

Рисует маркер (точку по умолчанию) с координатами p={x, y, z} и цветом col.

Команда MGL: errbox x y ex ey ['stl'='']
Команда MGL: errbox x y z ex ey ez ['stl'='']
Метод класса mglGraph: void Error (mglPoint p, mglPoint e, char *stl="")
Функция С: void mgl_error_box (HMGL gr, mreal px, mreal py, mreal pz, mreal ex, mreal ey, mreal ez, char *stl)

Рисует 3d error box в точке p={x, y, z} размером e={ex, ey, ez} и стилем stl. Используйте NAN в компонентах e для уменьшения рисуемых элементов.

Команда MGL: line x1 y1 x2 y2 ['stl'='']
Команда MGL: line x1 y1 z1 x2 y2 z2 ['stl'='']
Метод класса mglGraph: void Line (mglPoint p1, mglPoint p2, char *stl="B", intnum=2)
Функция С: void mgl_line (HMGL gr, mreal x1, mreal y1, mreal z1, mreal x2, mreal y2, mreal z2, char *stl, intnum)

Рисует геодезическую линию (декартовых координатах – прямую) из точки p1 в p2 использую стиль линии stl. Параметр num определяет гладкость линии (число точек на линии). Если num=2, то рисуется прямая даже в криволинейных координатах (см. Криволинейные координаты). Наоборот, для больших значений (например, =100) рисуется геодезическая линия (окружность в полярных координатах, парабола в параболических и т.д.). Линия рисуется даже если часть ее лежит вне диапазона осей координат.

Команда MGL: curve x1 y1 dx1 dy1 x2 y2 dx2 dy2 ['stl'='']
Команда MGL: curve x1 y1 z1 dx1 dy1 dz1 x2 y2 z2 dx2 dy2 dz2 ['stl'='']
Метод класса mglGraph: void Curve (mglPoint p1, mglPoint d1, mglPoint p2, mglPoint d2, const char *stl="B", int num=100)
Функция С: void mgl_curve (HMGL gr, mreal x1, mreal y1, mreal z1, mreal dx1, mreal dy1, mreal dz1, mreal x2, mreal y2, mreal z2, mreal dx2, mreal dy2, mreal dz2, const char *stl, int num)

Рисует кривую Безье из точки p1 в p2 используя стиль линии stl. Касательные в точках пропорциональны d1, d2. Параметр num определяет гладкость линии (число точек на линии). Если num=2, то рисуется прямая даже в криволинейных координатах (см. Криволинейные координаты). Наоборот, для больших значений (например, =100) рисуется геодезическая линия (окружность в полярных координатах, парабола в параболических и т.д.). Кривая рисуется даже если часть ее лежит вне диапазона осей координат.

Команда MGL: face x1 y1 x2 y2 x3 y3 x4 y4 ['stl'='']
Команда MGL: face x1 y1 z1 x2 y2 z2 x3 y3 z3 x4 y4 z4 ['stl'='']
Метод класса mglGraph: void Face (mglPoint p1, mglPoint p2, mglPoint p3, mglPoint p4, const char *stl="w")
Функция С: void mgl_face (HMGL gr, mreal x1, mreal y1, mreal z1, mreal x2, mreal y2, mreal z2, mreal x3, mreal y3, mreal z3, mreal x4, mreal y4, mreal z4, const char *stl)

Рисует заполненный четырехугольник (грань) с углами в точках p1, p2, p3, p4 и цветом(-ами) stl. При этом цвет может быть один для всей грани, или различным если указаны все 4 цвета. Грань будет нарисована даже если часть ее лежит вне диапазона осей координат. Параметр stl может также содержать параметры маски (см. Цветовая схема).

Команда MGL: rect x1 y1 x2 y2 ['stl'='']
Команда MGL: rect x1 y1 z1 x2 y2 z2 ['stl'='']

Рисует закрашенный прямоугольник (грань) с вершинами {x1, y1, z1} и {x2, y2, z2} цветом stl. При этом цвет может быть один для всей грани, или различным для разных вершин если указаны все 4 цвета. Грань будет нарисована даже если часть ее лежит вне диапазона осей координат. Параметр stl может также содержать параметры маски (см. Цветовая схема).

Команда MGL: facex x0 y0 z0 wy wz ['stl'='' d1=0 d2=0]
Команда MGL: facey x0 y0 z0 wx wz ['stl'='' d1=0 d2=0]
Команда MGL: facez x0 y0 z0 wx wy ['stl'='' d1=0 d2=0]
Метод класса mglGraph: void FaceX (mreal x0, mreal y0, mreal z0, mreal wy, mreal wz, const char *stl="w", mreal d1=0, mreal d2=0)
Метод класса mglGraph: void FaceY (mreal x0, mreal y0, mreal z0, mreal wx, mreal wz, const char *stl="w", mreal d1=0, mreal d2=0)
Метод класса mglGraph: void FaceZ (mreal x0, mreal y0, mreal z0, mreal wx, mreal wy, const char *stl="w", mreal d1=0, mreal d2=0)
Функция С: void mgl_facex (HMGL gr, mreal x0, mreal y0, mreal z0, mreal wy, mreal wz, const char *stl, mreal d1, mreal d2)
Функция С: void mgl_facey (HMGL gr, mreal x0, mreal y0, mreal z0, mreal wx, mreal wz, const char *stl, mreal d1, mreal d2)
Функция С: void mgl_facez (HMGL gr, mreal x0, mreal y0, mreal z0, mreal wx, mreal wy, const char *stl, mreal d1, mreal d2)

Рисует закрашенный прямоугольник (грань) перпендикулярно оси [x,y,z] в точке {x0, y0, z0} цветом stl и шириной wx, wy, wz вдоль соответствующего направления. При этом цвет может быть один для всей грани, или различным для разных вершин если указаны все 4 цвета. Параметр stl может также содержать параметры маски (см. Цветовая схема). Параметры d1!=0, d2!=0 задают дополнительный сдвиг последней точки (т.е. рисуют четырехугольник). Грань будет нарисована даже если часть ее лежит вне диапазона осей координат.

Команда MGL: sphere x0 y0 r ['col'='r']
Команда MGL: sphere x0 y0 z0 r ['col'='r']
Метод класса mglGraph: void Sphere (mglPoint p, mreal r, const char *stl="r")
Функция С: void mgl_sphere (HMGL gr, mreal x0, mreal y0, mreal z0, mreal r, const char *stl)

Рисует сферу радиуса r с центром в точке p={x0, y0, z0} цветом stl.

Команда MGL: drop x0 y0 dx dy r ['col'='r' sh=1 asp=1]
Команда MGL: drop x0 y0 z0 dx dy dz r ['col'='r' sh=1 asp=1]
Метод класса mglGraph: void Drop (mglPoint p, mglPoint d, mreal r, const char *col="r", mreal shift=1, mreal ap=1)
Функция С: void mgl_drop (HMGL gr, mreal x0, mreal y0, mreal z0, mreal dx, mreal dy, mreal dz, mreal r, const char *col, mreal shift, mreal ap)

Рисует каплю радиуса r в точке p вытянутую вдоль направления d цветом col. Параметр shift определяет степень вытянутости: ‘0’ – сфера, ‘1’ – классическая капля. Параметр ap определяет относительную ширину капли (аналог "эллиптичности" для сферы).

Команда MGL: cone x1 y1 z1 x2 y2 z2 r1 [r2=-1 'stl'='' edge=off]
Метод класса mglGraph: void Cone (mglPoint p1, mglPoint p2, mreal r1, mreal r2=-1, const char *stl="B", bool edge=false)
Функция С: void mgl_cone (HMGL gr, mreal x1, mreal y1, mreal z1, mreal x2, mreal y2, mreal z2, mreal r1, mreal r2, const char *stl, int draw_edge)

Рисует трубу (или усеченный конус если edge=false) между точками p1, p2 с радиусами на концах r1, r2. Если r2<0, то полагается r2=r1. Цвет конуса задается строкой stl. Параметр stl может содержать:

  • @’ для рисования торцов;
  • #’ для сетчатой фигуры;
  • t’ для рисования цилиндра вместо конуса/призмы;
  • 4’, ‘6’, ‘8’ для рисования квадратной, шестиугольной или восьмиугольной призмы вместо конуса.
Команда MGL: circle x0 y0 r ['col'='r']
Команда MGL: circle x0 y0 z0 r ['col'='r']
Метод класса mglGraph: void Circle (mglPoint p, mreal r, const char *stl="r")

Рисует круг радиуса r с центром в точке p={x0, y0, z0} цветом stl. Если col содержит: ‘#’ то рисуется только граница, ‘@’ то рисуется граница (вторым цветом из col или черными). Параметр col может также содержать параметры маски (см. Цветовая схема).

Команда MGL: ellipse x1 y1 x2 y2 r ['col'='r']
Команда MGL: ellipse x1 y1 z1 x2 y2 z2 r ['col'='r']
Метод класса mglGraph: void Ellipse (mglPoint p1, mglPoint p2, mreal r, const char *col="r")
Функция С: void mgl_ellipse (HMGL gr, mreal x1, mreal y1, mreal z1, mreal x2, mreal y2, mreal z2, mreal r, const char *col)

Рисует эллипс радиуса r с фокусами в точках p1, p2 цветом stl. Если col содержит: ‘#’ то рисуется только граница, ‘@’ то рисуется граница (вторым цветом из col или черными). Параметр col может также содержать параметры маски (см. Цветовая схема).

Команда MGL: rhomb x1 y1 x2 y2 r ['col'='r']
Команда MGL: rhomb x1 y1 z1 x2 y2 z2 r ['col'='r']
Метод класса mglGraph: void Rhomb (mglPoint p1, mglPoint p2, mreal r, const char *col="r")
Функция С: void mgl_rhomb (HMGL gr, mreal x1, mreal y1, mreal z1, mreal x2, mreal y2, mreal z2, mreal r, const char *col)

Рисует ромб ширины r с вершинами в точках p1, p2 цветом stl. Если col содержит: ‘#’ то рисуется только граница, ‘@’ то рисуется граница (вторым цветом из col или черными). Если col содержит 3 цвета, то используется градиентная заливка. Параметр col может также содержать параметры маски (см. Цветовая схема).

Команда MGL: arc x0 y0 x1 y1 a ['col'='r']
Команда MGL: arc x0 y0 z0 x1 y1 a ['col'='r']
Команда MGL: arc x0 y0 z0 xa ya za x1 y1 z1 a ['col'='r']
Метод класса mglGraph: void Arc (mglPoint p0, mglPoint p1, mreal a, const char *col="r")
Метод класса mglGraph: void Arc (mglPoint p0, mglPoint pa, mglPoint p1, mreal a, const char *col="r")
Функция С: void mgl_arc (HMGL gr, mreal x0, mreal y0, mreal x1, mreal y1, mreal a, const char *col)
Функция С: void mgl_arc_ext (HMGL gr, mreal x0, mreal y0, mreal z0, mreal xa, mreal ya, mreal za, mreal x1, mreal y1, mreal z1, mreal a, const char *col)

Рисует дугу вокруг оси pa (по умолчанию вокруг оси z pa={0,0,1}) с центром в p0, начиная с точки p1. Параметр a задает угол дуги в градусах. Строка col задает цвет дуги и тип стрелок на краях.

Команда MGL: polygon x0 y0 x1 y1 num ['col'='r']
Команда MGL: polygon x0 y0 z0 x1 y1 z1 num ['col'='r']
Метод класса mglGraph: void Polygon (mglPoint p0, mglPoint p1, int num, const char *col="r")
Функция С: void mgl_polygon (HMGL gr, mreal x0, mreal y0, mreal z0, mreal x1, mreal y1, mreal z1, int num, const char *col)

Рисует правильный num-угольник с центром в p0 с первой вершиной в p1 цветом col. Если col содержит: ‘#’ то рисуется только граница, ‘@’ то рисуется граница (вторым цветом из col или черными). Параметр col может также содержать параметры маски (см. Цветовая схема).

Метод класса mglGraph: void Logo (long w, long h, const unsigned char *rgba, bool smooth=false, const char *opt="")
Функция С: void mgl_logo_file (HMGL gr, const char *fname, bool smooth, const char *opt)

Draw bitmap (logo) along whole axis range, which can be changed by Опции команд. Bitmap can be loaded from file or specified as RGBA values for pixels. Parameter smooth set to draw bitmap without or with color interpolation.

Команда MGL: symbol x y 'id' ['fnt'='' size=-1]
Команда MGL: symbol x y z 'id' ['fnt'='' size=-1]
Метод класса mglGraph: void Symbol (mglPoint p, char id, const char *fnt="", mreal size=-1)
Функция С: void mgl_symbol (HMGL gr, mreal x, mreal y, mreal z, char id, const char *fnt, mreal size)

Рисует определенный пользователем символ с именем id в точке p стилем fnt. Размер задается параметром size (по умолчанию -1). Строка fnt может содержать цвет (до разделителя ‘:’); стили ‘a’ или ‘A’ для вывода в абсолютной позиции ({x, y} полагаются в диапазоне [0,1]) относительно рисунка (для ‘A’) или subplot/inplot (для ‘a’); и стиль ‘w’ для рисования только контура символа.

Команда MGL: symbol x y dx dy 'id' ['fnt'=':L' size=-1]
Команда MGL: symbol x y z dx dy dz 'id' ['fnt'=':L' size=-1]
Метод класса mglGraph: void Symbol (mglPoint p, mglPoint d, char id, const char *fnt="", mreal size=-1)
Функция С: void mgl_symbol_dir (HMGL gr, mreal x, mreal y, mreal z, mreal dx, mreal dy, mreal dz, const char *text, const char *fnt, mreal size)

Аналогично предыдущему, но символ рисуется в повернутым в направлении d.

Команда MGL: addsymbol 'id' xdat ydat
Метод класса mglGraph: void DefineSymbol (char id, const mglDataA &xdat, const mglDataA &ydat)
Функция С: void mgl_define_symbol (HMGL gr, HCDT xdat, HCDT ydat)

Добавляет определенный пользователем символ с именем id и границей {xdat, ydat}. Значения NAN задают разрыв (скачок) граничной кривой.