Смекни!
smekni.com

Графика в системе Maple V (стр. 3 из 12)

13.2.11. Построение графиков функций, заданных параметрически

В ряде случаев для задания некоторых зависимостей используются заданные параметрически уравнения, например x=fl(t) и y=f2(t) при изменении переменной t в некоторых пределах. Точки (х,у) наносятся на график в Декартовой системе координат и соединяются отрезками прямых. Для этого используется функция plot в следующей форме:

plot([fl(t),f2(t),t=tmin..tmax],h,v,p)

Если функции fl(t) и f2(t) содержат периодические функции (например, тригонометрические), то для получения замкнутых фигур диапазон изменения переменной t задается обычно 0..2*Pi или -Pi..Pi. К примеру, если задать в качестве функций fl(t) и f2(t) функции sin(t) и cos(t), то будет получен график окружности. Рис. 13.!3 показывает другие, чуть менее тривиальные примеры построения графиков такого рода.

Задание указателей масштаба h и v, а также параметров р не обязательно. Но, как и ранее, позволяет получить вид графика, удовлетворяющий всем требования пользователя.


Рис. 13.13. Построение функции, заданных параметрически.

13.2.12. Построение графиков функций в полярной системе координат

Графики в полярной системе координат представляют собой линии, которые описывает конец радиус вектора r(t) при изменении угла t в определенных пределах — от tmin до tmax. Построение таких графиков производится также функцией plot, которая записывается в следующем виде:

plot([r(t),theta(t),t=tmin..tmax],h,v,p,coords=polar)

Здесь существенным моментом является задание полярной системы координат опцией coords=polar. Рис. 13.14 дает примеры построения графиков функций в полярной системе координат.

Графики параметрических функций и функций в полярной системе координат отличаются огромным разнообразием. Снежинки и узоры мороза на стеклах, некоторые виды кристаллов и многие иные физические объекты подчиняются математическим закономерностям, положенным в основу построения таких графиков.

13.3. Построение ЗО-графиков с помощью функция plot3d

13.3.1. Особенности применения функции plot3d

Для построения графиков трехмерных поверхностей Maple имеет встроенную в ядро функцию plot3d. Она может использоваться в следующих форматах:


Рис. 13.14. Построение графиков функций в полярной системе координат.

plot3d(exprl, x=a..b, y=c..d,p) plot3d(f, a..b, c..d,p)

plot3d([exprf,exprg,exprh], s=a..b, t=c..d,p) plot3d([f,g,h], a..b, c..d,p).

В двух первых формах plot3d применяется для построения обычного графика одной поверхности, в других формах — для построения графика с параметрической формой задания поверхности. В приведенных формах: f, g и h — функции, expri — выражение, отражающее зависимость от х и у, exprf, exprg и exprh — выражения, задающие поверхность параметрически, s, t, а и b — числовые константы действительного типа, end — числовые константы или выражения действительного типа, х, у, s и t — имена независимых переменных и р — параметры-опции. Параметры для функции plot3d задаются аналогично их заданию для функции plot.

13.3.2. Параметры функции plot3d

С помощью параметров р можно в широких пределах управлять видом трехмерных графиков, выводя или убирая линии каркасной сетки, вводя функциональную окраску поверхностей, меняя угол их обзора и параметры освещения, изменяя вид координатных осей и т.д.

Следующие параметры функции plot3d задаются аналогично их заданию для функции plot:

axesfont font color coords font labelfont linestyle numpoints scaling style symbol thickness title titlefont

Однако функция plot3d имеет ряд дополнительных специфических параметров:

ambientlight=[r,g,o] Задает интенсивность красного (red), зеленого (green) и синего (blue) цветов в относительных единицах (от 0 до 1).
axes=f Задает вид координатных осей (BOXED, NORMAL, FRAME и NONE, по умолчанию NONE).
grid=[m,nl Задает число линии каркаса поверхности.
gridstyle=x Задает стиль линий каркаса х ( 'rectangular' или 'triangular').
labels=[x,y,z] Задает надписи по осям (х, у и z — строки, по умолчанию пустые).
light=[phi,theta,r,g, b] Задает углы, под которыми расположен источник освещения поверхности и интенсивности составляющих (г, g и b) цвета.
lightmodel=x Задает режим яркости (соответственно, none", 'lightl', 'light2', 'light3' и 'light4').
orientation=[theta, phi] Задает углы ориентации поверхности (по умолчанию 45 градусов).
projection=r Задает перспективу при обзоре поверхности (г может быть числом 0 или 1, задающим включение или выключение перспективы, а также одной из строк 'FISHEYE', 'NORMAL', или 'ORTHOGONAL' (это соответствует численному значению г 0, 0.5, или 1, соответственно, причем по умолчанию задано projection = ORTHOGONAL).
shading=s Задает направления, по которым меняется цвет функциональной окраски (значения s могут быть XYZ, XY, Z, ZGREYSCALE, ZHUE, NONE).
tickmarks=[l,n,m] Задает характер маркировки по осям х, у и z (числа 1, п и m имеют значения не менее 1).
view=zmin..zmax или Ixmin..xmax,ymin.. ymax,zmin..zmax] Задает минимальные и максимальные координаты поверхности для ее видимых участков.

13.3.3. Выбор и пересчет координат ЗО-графиков

Для трехмерных графиков возможно задание 31-го типа координатных систем с помощью параметра соога5=Тип_координатнои_системь1. Поскольку на экране дисплея поверхность отображается только в прямоугольной системе координат и характеризуется координатами х, у и z, то для представления поверхности, заданной в иной системе координат с координатами u, v и w используются известные [46,47] формулы для преобразования (u, v, w) --> (х, у, z). Ниже представлены типы координатных систем для трехмерной графики и соответствующие формулы преобразования:

bipolarcylindrical

х = a*sinh(v)/(cosh(v)-cos(u)) у = a*sin(u)/(cosh(v)-cos(u)) z = w

bispherical

х = sin(u)*cos(w)/d у = sin(u)*sin(w)/d z = sinh(v)/d (где d = cosh(v) - cos(u) )

cardiodal

x = u*v*cos(w)/(lГ2+v»2)-2 у = u*v*sin(w)/(ir2+v"2r2 z = (u"2-v'2)/2/^2+v'2)-2

cardiodcylindrical

x = (u'2-v~2)/2/(u'-2+v~2)'-2 у = u*v/(u'2+v-2)"2 z = w

casscylindrical

x = a*2~(l/2)/2*((exp(2*u)+2*exp(u)*cos(v)+l)-(l/2)+exp(u)*cos(v)+l)-(l/2) y= a*2«(l/2)/2*((exp(2*u)+2*exp(u)*cos(v)+l)"(l/2)-exp(u)*cos(v)-l)"(l/2) z = w

confocalellip

x = ((a~2-u)*{a'2-v)*(a"2-w)/{a'2-b''2)/(a-2-c-2)Y(l/2) у = ((b»2-u)*(b~2-v)*(b"2-w)/(b"2-a»2)/(b»2-c«2))'(l/2) z = ((c''2-u)*(^2-v)*(c''2-w)/(c'2-a'2)/(c^2-\)''2))~(l/2)

confocalparab

x = ((a'2-u)*(si'2-v)*(a'2-w)/{V2-a'2))'(l/2) у = ((b»2-u)*(b»2-v)*(b-2-w)/(b-2-a-2) Г(1/2) z = (a"2+b"2-u-v-w)/2

conical

x = u*v*w/(a*b) у = u/b*((v"2 - h~2)*(b~2-w''2)/(a~2-V2)Y(l/2) z = u/a*((a'2 - v'2)*(a'2 - w~2)/(a-2-b»2))"(l/2)

cylindrical

x = u*cos(y) у = u*sin(y) z = w

ellcylindrical

x = a*cosh(u)*cos(v) у = a*sinh(u)*sin(v) z = w

ellipsoidal

x = u*v*w/a/b у = ((u'^-b^Mv^-b^^b^-w^Aa^-b^^l^/b z = ((u-2-a»2)*(a•2-v«2)*(a»2-w"2)/(a•2-b'2))»(l/2)/a

hypercylindrical

x= ((u"2+v"2Y(l/2)+u)'(l/2) y^u^+v^ni^-iO-O/^) z=w

invcasscylindrical

x = a*2-(l/2)/2*((exp(2*u)+2*exp(u)*cos(v)+l)-(l/2) +

exp(u)*cos(v)+l)'(l/2)/(exp(2*u)+2*exp(u)*cos(v)+l)'(l/2) у = a*2-(l/2)/2*((exp(2*u)+2*exp(u)*cos(v)+l)-(l/2) -

exp(u)*cos(v)-l)»(l/2)/(exp(2*u)+2*exp(u)*cos(v)+l)«(l/2) z = w

invellcylindrical

x = a*cosh(u)*cos(v)/(cosh(ur2-sin(v)"2) у = a*sinh(u)*sin(v)/(cosh(u)"2-sin(v)~2) z = w

invoblspheroidal

x = a*cosh(u)*sin(v)*cos(w)/(cosh(u)"2-cos(v)«2) у = a*cosh(u)*sin(v)*sin(w)/(cosh(u)'2-cos(v)"2) z = a*sinh(u)*cos(v)/(cosh(u)«2-cos(v)'2)

invprospheroidal

x = a*sinh(u)*sin(v)*cos(w)/(cosh(u)'2-sin(v)"2) у = a*sinh(u)*sin(v)*sin(w)/(cosh(u)«2-sin(v)«2) z = a*cosh(Ll)*cos(v)/(cosh(u)»2-s^n(v)•2)

logcoshcylindrical

x = !i/Pi*\n(cosh(uY2-sm(vY2} у = 2*a/Pi*arctan(tanh(u)*tan(v)) z = w

maxwellcylindrical

x = a/Pi*(u+l+exp(u)*cos(v)) у = a/Pi*(v+exp(u)*sin(v)) z = w

oblatespheroidal

x = a*cosh(u)*sin(v)*cos(w) у = a*cosh(u)*sin(v)*sin(w) z = a*sinh(u)*cos(v)

paraboloidal

x = u*v*cos(w) у = u*v*sin(w) z = (u"2 - v'2)/2

paraboloidal2

x = 2*((u-a)*(a-v)*(a-w)/(a-b))-(l/2) у = 2*((u-b)*(b-v)*(b-w)/(a-b))-(l/2) z = u+v+w—a—b

paracylindrical

x = (u'2 - v'2)/2 у = u*v z = w

prolatespheroidal

x = a*sinh(u)*sin(v)*cos(w) y=a*sinh(u)*sin(v)*sin(w) z=a*cosh(u)*cos(v)

rectangular

x = и у = v • z = w

rosecylindrical

x = ((1Г2+у-2)-(1/2)+и)-(1/2)/(1Г2+у-2Г(1/2) у = ((u'2+v'2y(l/2)-uY(l/2)/(u'2+v'2V(\/2) z = w

sixsphere

x= u/(u'2+v'2+w'2) у = v/(u'-2+v'2+v/''2) z = w/(u'2+v'2+w'2)

spherical

x = u*cos(v)*sin(w) у = u*sin(v)*sin(w) z = u*cos(w)

tangentcylindrical

x = u/(ir2+v"2) у = v/(u«2+v»2) z = w

tangentsphere

x = u-costwVdj^+v^) у = u*sin(w)/(ir2+v"2) z = v/(u"2+v~2)

toroidal

x = a*sinh(v)*cos(w)/d у = a*sinh(v)*sin(w)/d z = a*sin(u)/d (где d = cosh(v) - cos(u) )

Эти формулы полезно знать, поскольку в литературе встречаются несколько отличные формулы пересчета.

Вид графиков трехмерных поверхностей очень сильно различается в разных

координатных системах. По умолчанию трехмерные графики строятся в прямоугольной системе координат — rectangular.

13.4. Примеры построения трехмерных поверхностей с помощью функции plot3d

13.4.1. Простейшее построение ЗО-поверхности с разным стилем

На рис. 13.15 показано два примера простейших построений графиков трехмерной поверхности. По умолчанию строится каркасная поверхность с функциональной окраской тонких линий каркаса и удалением невидимых линий. Чтобы график выглядел более четким, построение в первом примере задано линиями черного цвета с помощью параметра color-black.


Рис. 13.15. Примеры простейшего построения трехмерных поверхностей.

Во втором примере та же поверхность построена с параметром style=patch, что приводит к появлению ее функциональной окраски (увы, на рисунках в книге воспринимаемой как окраска оттенками серого цвета). Функциональная окраска делает рисунки более информативными.

Помимо значения path, можно задавать ряд других стилей для построения трехмерных поверхностей: point — точками, contour — контурными линиями, line — линиями, hidden — линиями каркаса с удалением невидимых линий, wireframe — линиями каркаса со всеми видимыми линиями, patchnogrid — с раскраской, но без линий каркаса, patchcontour — раскраска с линиями равного уровня.

Цвет трехмерного графика может задаваться (как и у двумерного) опцией со1ог=с, где с — цвет (оттенки цвета указывались выше). Возможно еще два алгоритма задания цвета:

HUE — алгоритм с заданием цвета в виде color=f(x,y);

RGB — алгоритм с заданием цвета в виде color=[exprr,exprg,exprb], где выражения exprr, exprg и exprb — выражения, задающие относительную значимость (от О до 1) основных цветов (красного — red, зеленого — green и синего — blue).