[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Эти функции управляет видом и масштабом осей координат. Перед построением для каждой точки выполняются 3 преобразования: сначала определяется возможность рисования точки (см. Обрезание), далее применяются формулы перехода к криволинейным координатам и наконец точка отображается.
4.3.1 Масштаб осей координат | ||
4.3.2 Криволинейные координаты | ||
4.3.3 Метки осей |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
v1 v2
v1 v2
v1 v2
v1 v2
mglGraph
: 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 x2
x1 y1 x2 y2
x1 y1 z1 x2 y2 z2
x1 y1 z1 c1 x2 y2 z2 c2
mglGraph
: 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 Текстовые формулы.
how
mglGraph
: 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.
val
mglGraph
: 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);
.
val
mglGraph
: 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.