Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Инстр_Mathem_v8.doc
Скачиваний:
4
Добавлен:
16.11.2019
Размер:
1.91 Mб
Скачать

11.3. Изображения трехмерных объектов

Т ипы графиков.

Plot3D[{f1[x,y], f2[x,y], …}, {x, xmin, xmax}, {y, ymin, ymax}] – график одной или нескольких поверхностей f1, f2, … . По умолчанию по каждой координате берется 25 отсчетов.

ParametricPlot3D[{{x1(t, u), y1(t, u), z1(t, u)}, {x2(t, u), y2(t, u), z2(t, u)}, …},

{t, tmin, tmax}, {u, umin, umax}]

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

P arametricPlot3D[{{x1(t, ), y1(t, ), z1(t, )}, {x2(t, ), y2(t, ), z2(t, )}, …}, {t, tmin, tmax}]

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

ContourPlot[f, {x, xmin, xmax}, {y, ymin, ymax}] – поверхность представляется с помощью линий уровня, подобно тому, как изображается рельеф на географических картах.

Для трехмерных графиков опция ViewPoint -> {x, y, z} определяет координаты точки, из которой наблюдается трехмерный объект. Установка по умолчанию: ViewPoint -> {1.3, -2.4, 2}.

Варианты выбора точки наблюдения:

{0, -2, 0} – прямо спереди;

{0, -2, -2} – спереди и сверху;

{-2, -2, 0} – из левого угла и т.д.

Используются также следующие обозначения: Above (положительные значения z), Below (отрицательные значения z), Back (положительные значения y), Left (отрицательные значения x), {Left, Top} и т.д.

Пример 11.5

На рис. 11.6. приведены два изображения поверхности z[x, y] = x2 – x y2. Программа построения графиков:

In[ ] := z[x_,y_]=x^2-y^2 x;

a=Plot3D[z[x,y],{x,-2.5,4},{y,-2,2},

ColorFunction(Hue[1-#]&),AxesLabel{x,y,z},

BoxRatios{1,1,0.5},BoxedFalse];

b=ContourPlot[z[x,y],{x,-2.5,4},{y,-2,2},

ColorFunction(Hue[1-#]&),AxesTrue,AxesLabel{x,y}];

Show[GraphicsRow[{a,b}]]

Опция ColorFunction -> (Hue[ 1- # ] &) делает графики цветными.

Пример 11.6

Следующий рисунок (рис. 11.7.) представляет собой параметрический график конуса и секущей плоскости:

In[ ] := ParametricPlot3D[ {

{Cos[fi Pi](1-z/2), Sin [fi Pi](1-z/2), z}, (* – Конус *)

{-1+fi, -1+z, 0.5+z/2}}, (* – Секущая плоскость *)

{fi, 0, 2}, {z, 0, 2}, AxesLabel -> {x, y, z}]

Пример 11.7 Нарисуем свертывающуюся спираль (рис. 11.8). Для построения пространственной кривой используем параметрический график, в котором координаты зависят только от одного параметра t. По оси x отложим функцию , а по оси z – производную x(t). Добавим прямую линию – ось спирали.

I n[ ] := a=0.05; x[t_]=E^-(a t) Cos[t]; z[t_]=x'[t];

ParametricPlot3D[ { {x[ t], t, z[t]}, (* Спираль *)

{0, t, 0}}, (* Ось спирали *)

{t, 0, 8Pi}, Boxed ->False , BoxRatios ->{1, 6.2, 1},

ViewPoint -> {0.7, -3, 0.6} ,

AxesLabel -> {"x[t]", "t", "z[t]" }]

Пакет Математика включает ряд трехмерных примитивов. Информация о них содержится в разделе Graphics3D.

Пример 11.8. Построим график конуса и сферы (рис. 11.9):

In[ ]:= Graphics3D[ {Cone[], Magenta, Sphere[{3, 0, 0}]} ]

11.4. Анимация

П акет Математика позволяет “оживлять” построенные графики; для этого нужно выделить их и выбрать команду меню GraphicsRenderingAnimate Selected Graphics (Ctrl+Y). Графики будут поочередно сменять друг друга на экране монитора. При анимации может оказаться полезной команда выравнивания графиков: GraphicsRenderingAlign Selected Graphics.

Другой способ построения анимированных объектов – использование функции Animate.

Функция Animate[expr, {u, umin, umax}] создает анимацию выражения expr, в котором параметр u меняется от umin до umax. Может быть указан шаг изменения параметра: {u, umin, umax, du}. При этом выражение expr может быть любым, не обязательно рисунком.

Пример 11.8. Команда

In[ ]:= Animate[{n, Prime[n]}, {n, 1, 50, 1}]

выводит на экран поочередно простые числа вместе с порядковым номером числа.

Пример 11.9. Написанная ниже программа выводит на экран анимированный график – катящееся колесо. Точка обода колеса вычерчивает циклоиду. Один из кадров графика показан на рис. 11.10.

In[ ]:= tp=0.2; Animate[ ParametricPlot[

{ {Cos[Pi/2-t*4Pi]+4Pi*tp, Sin[Pi/2-t*4Pi]+1}, (*Колесо *)

{Cos[Pi/2-t*4Pi*tp]+4Pi*t*tp, Sin[Pi/2-t*4Pi*tp]+1}, (*Циклоида*)

{4Pi*tp+Cos[Pi/2-4Pi*tp]*t, 1+Sin[Pi/2-4Pi*tp]*t}, (*Радиус*)

{-1+t*(4Pi+2), 0} , (*Рельс*)

{0, t*2.5} (*Начало координат*)

}, {t, 0, 1},

AspectRatio -> Automatic, PlotRange -> All ],

{tp, 0, 1, 0.01}, AnimationRunning -> False]