| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Эти функции управляет видом и масштабом осей координат. Перед построением для каждой точки выполняются 3 преобразования: сначала определяется возможность рисования точки (см. Обрезание), далее применяются формулы перехода к криволинейным координатам и наконец точка отображается.
| 4.3.1 Масштаб осей координат | ||
| 4.3.2 Криволинейные координаты | ||
| 4.3.3 Метки осей |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
v1 v2v1 v2v1 v2v1 v2mglGraph: void SetRange (char dir, mreal v1, mreal v2)void mgl_set_range_val (HMGL gr, char dir, mreal v1, mreal v2)Задает диапазон изменения ‘x’-,‘y’-,‘z’-,‘c’-координат. См. также ranges.
add=off]add=off]add=off]add=off]mglGraph: void SetRange (char dir, const mglDataA &dat, bool add=false)void mgl_set_range_dat (HMGL gr, char dir, const HCDT a, int add)Задает диапазон изменения ‘x’-,‘y’-,‘z’-,‘c’-координат как минимальное и максимальное значение массива dat. Параметр add=on указывает добавлять новый диапазон к существующему (не заменять его).
x1 x2 y1 y2 [z1=0 z2=0]mglGraph: void SetRanges (mglPoint p1, mglPoint p2)mglGraph: void SetRanges (mreal x1, mreal x2, mreal y1, mreal y2, mreal z1=0, mreal z2=0)void mgl_set_ranges (HMGL gr, mreal x1, mreal x2, mreal y1, mreal y2, mreal z1, mreal z2)Задает диапазон изменения координат. Если минимальное и максимальное значение координаты равны, то они игнорируются по данному направлению. Также устанавливает размер цветовой шкалы, аналогично команде crange z1 z2. Начальные диапазоны равны [-1, 1].
mglGraph: void SetRanges (const mglDataA &xx, const mglDataA &yy)mglGraph: void SetRanges (const mglDataA &xx, const mglDataA &yy, const mglDataA &zz)mglGraph: void SetRanges (const mglDataA &xx, const mglDataA &yy, const mglDataA &zz, const mglDataA &cc)Задает диапазон изменения ‘x’-,‘y’-,‘z’-,‘c’-координат как минимальное и максимальное значение массивов xx, yy, zz, cc соответственно.
mglGraph: void SetAutoRanges (mglPoint p1, mglPoint p2)mglGraph: void SetAutoRanges (double x1, double x2, double y1, double y2, double z1=0, double z2=0, double c1=0, double c2=0)void mgl_set_auto_ranges (HMGL gr, double x1, double x2, double y1, double y2, double z1, double z2, double z1, double z2)Задает диапазон изменения координат для автоматических переменных. Если минимальное и максимальное значение координаты равны, то они игнорируются по данному направлению.
x0 y0 [z0=nan]mglGraph: void SetOrigin (mglPoint p0)mglGraph: void SetOrigin (mreal x0, mreal y0, mreal z0=NAN)void mgl_set_origin (HMGL gr, mreal x0, mreal y0, mreal z0)Задает центр пересечения осей координат. Если одно из значений равно NAN, то MathGL попытается выбрать оптимальное положение осей координат по этому направлению.
x1 x2x1 y1 x2 y2x1 y1 z1 x2 y2 z2x1 y1 z1 c1 x2 y2 z2 c2mglGraph: void ZoomAxis (mglPoint p1, mglPoint p2)void mgl_zoom_axis (HMGL gr, mreal x1, mreal y1, mreal z1, mreal c1, mreal x2, mreal y2, mreal z2, mreal c2)Дополнительно расширяет диапазон осей координат, задаваемый функциями SetRange или SetRanges, в соответствии с формулами min += (max-min)*p1 и max += (max-min)*p1 (или min *= (max/min)^p1 и max *= (max/min)^p1 для "логарифмических" диапазонов, когда inf>max/min>100 или 0<max/min<0.01). Начальные значения [0, 1]. Внимание! эти настройки не могут быть переписаны никакими другими функциями, включая DefaultPlotParam().
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
mglGraph: void SetFunc (const char *EqX, const char *EqY, const char *EqZ="", const char *EqA="")void mgl_set_func (HMGL gr, const char *EqX, const char *EqY, const char *EqZ, const char *EqA)Задает формулы перехода к криволинейным координатам. Каждая строка является математическим выражением, зависящим от старых координат ‘x’, ‘y’, ‘z’ и ‘a’ или ‘c’ для цветовой шкалы. Например, для цилиндрических координат будет SetFunc("x*cos(y)", "x*sin(y)", "z");. Для удаления формул соответствующий параметр должен быть пустым или NULL. Использование формул преобразования слегка замедляет программу. Параметр EqA задает аналогичную формулу для цветовой шкалы. See section Текстовые формулы.
howmglGraph: void SetCoor (int how)void mgl_set_coor (HMGL gr, int how)Устанавливает одну из предопределенных систем криволинейных координат в зависимости от параметра how: mglCartesian=0 – декартова система (нет преобразования координат, наиболее быстрая); mglPolar=1 – полярные координаты x_n=x*cos(y),y_n=x*sin(y), z_n=z; mglSpherical=2 – сферические координаты x_n=x*sin(y)*cos(z), y_n=x*sin(y)*sin(z), z_n=x*cos(y); mglParabolic=3 – параболические координаты x_n=x*y, y_n=(x*x-y*y)/2, z_n=z; mglParaboloidal=4 – Paraboloidal coordinates x_n=(x*x-y*y)*cos(z)/2, y_n=(x*x-y*y)*sin(z)/2, z_n=x*y; mglOblate=5 – Oblate coordinates x_n=cosh(x)*cos(y)*cos(z), y_n=cosh(x)*cos(y)*sin(z), z_n=sinh(x)*sin(y); mglProlate=6 – Prolate coordinates x_n=sinh(x)*sin(y)*cos(z), y_n=sinh(x)*sin(y)*sin(z), z_n=cosh(x)*cos(y); mglElliptic=7 – эллиптические координаты x_n=cosh(x)*cos(y), y_n=sinh(x)*sin(y), z_n=z; mglToroidal=8 – тороидальные координаты x_n=sinh(x)*cos(z)/(cosh(x)-cos(y)), y_n=sinh(x)*sin(z)/(cosh(x)-cos(y)), z_n=sin(y)/(cosh(x)-cos(y)); mglBispherical=9 – бисферические координаты x_n=sin(y)*cos(z)/(cosh(x)-cos(y)), y_n=sin(y)*sin(z)/(cosh(x)-cos(y)), z_n=sinh(x)/(cosh(x)-cos(y)); mglBipolar=10 – биполярные координаты x_n=sinh(x)/(cosh(x)-cos(y)), y_n=sin(y)/(cosh(x)-cos(y)), z_n=z; mglLogLog=11 – log-log координаты x_n=lg(x), y_n=lg(y), z_n=lg(z); mglLogX=12 – log-x координаты x_n=lg(x), y_n=y, z_n=z; mglLogY=13 – log-y координаты x_n=x, y_n=lg(y), z_n=z.
valmglGraph: void Ternary (int tern)void mgl_set_ternary (HMGL gr, int tern)Задает рисование треугольных (Ternary, tern=1), пирамидальных (Quaternary, tern=2) осей координат и проекций осей координат (tern=4,5,6).
Ternary – специальный тип графика для 3 зависимых координат (компонент) a, b, c таких, что a+b+c=1. MathGL использует только 2 независимые координаты a=x и b=y поскольку их достаточно для построения всех графиков. При этом третья координата z является независимым параметром для построения линий уровня, поверхностей и т.д.
Соответственно Quaternary координаты – 4 зависимые координаты a, b, c и d, такие что a+b+c+d=1. MathGL использует только 2 независимые координаты a=x, b=y и d=z поскольку их достаточно для построения всех графиков.
Проекции строятся если к переменной tern добавить число 4. Так что tern=4 нарисует проекции в декартовых координатах, tern=5 нарисует проекции в треугольных координатах, tern=6 нарисует проекции в пирамидальных координатах.
Используйте Ternary(0) для возвращения к привычным координатам. См. раздел Ternary axis, для примеров кода и графика. См. раздел Axis projection, для примеров кода и графика.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
mglGraph: void Adjust (const char *dir="xyzc")void mgl_adjust_ticks (HMGL gr, const char *dir)Автоматически задает шаг меток осей, число подметок и начальное положение меток для осей координат dir в виде наиболее удобном для человека. Также задает SetTuneTicks(true). Обычно не требуется вызывать эту функцию кроме случая возвращения настроек по умолчанию.
val [sub=0 org=nan]val [sub=0 org=nan]val [sub=0 org=nan]val [sub=0 org=nan]mglGraph: void SetTicks (char dir, mreal d=0, int ns=0, mreal org=NAN)void mgl_set_ticks (HMGL gr, char dir, mreal d, int ns, mreal org)Задает шаг меток осей d, число подметок ns и начальное положение меток org для оси вдоль направления dir (используйте ’c’ для меток colorbar). Переменная d задает шаг меток (если положительна) или их число на оси (если отрицательна). Нулевое значение задает автоматическую расстановку меток. Если org=NAN, то используется значение из переменной Org.
val1 'lbl1' [val2 'lbl2' ...]val1 'lbl1' [val2 'lbl2' ...]val1 'lbl1' [val2 'lbl2' ...]mglGraph: void SetTicksVal (char dir, const char *lbl, bool add=false)mglGraph: void SetTicksVal (char dir, const wchar_t *lbl, bool add=false)mglGraph: void SetTicksVal (char dir, const mglDataA &val, const char *lbl, bool add=false)mglGraph: void SetTicksVal (char dir, const mglDataA &val, const wchar_t *lbl, bool add=false)void mgl_set_ticks_str (HMGL gr, char dir, const char *lbl, bool add)void mgl_set_ticks_wcs (HMGL gr, char dir, const wchar_t *lbl, bool add)void mgl_set_ticks_val (HMGL gr, char dir, HCDT val, const char *lbl, bool add)void mgl_set_ticks_valw (HMGL gr, char dir, HCDT val, const wchar_t *lbl, bool add)Задает явное положение val и подписи lbl для меток вдоль оси dir. Если массив val не указан, то используются значения равно распределённые в интервале [Min.x, Max.x]. Метки разделяются символом ‘\n’. Используйте SetTicks() для восстановления автоматических меток.
mglGraph: void SetTickTempl (char dir, const char *templ)mglGraph: void SetTickTempl (char dir, const wchar_t *templ)void mgl_set_tick_templ (HMGL gr, const char *templ)void mgl_set_tick_templw (HMGL gr, const wchar_t *templ)Задает шаблон templ для меток вдоль x-,y-,z-оси или colorbar. Шаблон может содержать и символы TeX. Если templ="", то используется шаблон по умолчанию (в простейшем случае ‘%.2g’). Установка шаблона выключает автоматическое улучшение вида меток.
dv 'tmpl']mglGraph: void SetTicksTime (char dir, mreal val, const char *templ)void mgl_set_ticks_time (HMGL gr, mreal val, const char *templ)Задает метки времени с шагом val и шаблоном templ для меток вдоль x-,y-,z-оси или colorbar. Шаблон может содержать и символы TeX. Формат шаблона templ такой же как http://www.manpagez.com/man/3/strftime/. Наиболее употребительные варианты: ‘%X’ для национального представления времени, ‘%x’ для национального представления даты, ‘%Y’ для года с цифрами столетия. Если val=0 и/или templ="", то используется автоматическая расстановка меток и/или выбор шаблона. Вы можете использовать функцию mgl_get_time() для получения числа секунд с 1970 года до указанной даты/времени. Отмечу, что MS Visual Studio не может обрабатывать даты до 1970.
double mgl_get_time (const char*str, const char *templ)Возвращает число секунд с 1970 года до даты/времени, указанной в строке str. Формат строки задается templ, такой же как http://www.manpagez.com/man/3/strftime/. Наиболее употребительные варианты: ‘%X’ для национального представления времени, ‘%x’ для национального представления даты, ‘%Y’ для года с цифрами столетия. Отмечу, что MS Visual Studio не может обрабатывать даты до 1970.
val [pos=1.15]mglGraph: void SetTuneTicks (int tune, mreal pos=1.15)void mgl_tune_ticks (HMGL gr, int tune, mreal pos)Включает/выключает улучшение вида меток осей путем вынесения общего множителя (для маленьких, типа 0.001...0.002, или больших, типа 1000...2000, значений координат) или общей компоненты (для узкого диапазона, типа 0.999...1.000). Также задает положение pos общего множителя на оси: =0 около минимального значения, =1 около максимального значения.
dx [dy=0 dz=0 dc=0]mglGraph: void SetTickShift (mglPoint d)void mgl_set_tick_shift (HMGL gr, mreal dx, mreal dy, mreal dz, mreal dc)Задает значение дополнительного сдвига меток осей координат.
mglGraph: void SetTickRotate (bool val)void mgl_set_tick_rotate (HMGL gr, bool val)Включает/выключает поворот меток если их число или длина меток слишком велики.
mglGraph: void SetTickSkip (bool val)void mgl_set_tick_skip (HMGL gr, bool val)Включает/выключает пропуск меток если их число или длина меток слишком велики.
mglGraph: void SetTimeUTC (bool val)Разрешает/запрещает использование UTC времени в метках осей координат. В C/Fortran следует использовать mgl_set_flag(gr,val, MGL_USE_GMTIME);.
valmglGraph: void SetOriginTick (bool val=true)Разрешает/запрещает рисование меток в точке пересечения осей координат. В C/Fortran следует использовать mgl_set_flag(gr,val, MGL_NO_ORIGIN);.
val [stt=1]mglGraph: void SetTickLen (mreal val, mreal stt=1)void mgl_set_tick_len (HMGL gr, mreal val, mreal stt)Задает относительную длину меток осей координат. Значение по умолчанию 0.1. Параметр stt>0 задает относительную длину подметок, которые в sqrt(1+stt) раз меньше.
mglGraph: void SetAxisStl (const char *stl="k", const char *tck=0, const char *sub=0)void mgl_set_axis_stl (HMGL gr, const char *stl, const char *tck, const char *sub)Задает стиль осей (stl), меток (tck) и подметок (sub) осей координат. Если stl пустая или ноль, то используется стиль по умолчанию (‘k’ или ‘w’ в зависимости от типа прозрачности). Если tck, sub пустая или ноль, то используется стиль осей (т.е. stl).
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] |
This document was generated by Autobuild on September 28, 2013 using texi2html 1.82.