ВІКІСТОРІНКА
Навигация:
Інформатика
Історія
Автоматизація
Адміністрування
Антропологія
Архітектура
Біологія
Будівництво
Бухгалтерія
Військова наука
Виробництво
Географія
Геологія
Господарство
Демографія
Екологія
Економіка
Електроніка
Енергетика
Журналістика
Кінематографія
Комп'ютеризація
Креслення
Кулінарія
Культура
Культура
Лінгвістика
Література
Лексикологія
Логіка
Маркетинг
Математика
Медицина
Менеджмент
Металургія
Метрологія
Мистецтво
Музика
Наукознавство
Освіта
Охорона Праці
Підприємництво
Педагогіка
Поліграфія
Право
Приладобудування
Програмування
Психологія
Радіозв'язок
Релігія
Риторика
Соціологія
Спорт
Стандартизація
Статистика
Технології
Торгівля
Транспорт
Фізіологія
Фізика
Філософія
Фінанси
Фармакологія


Построение графиков трехмерных поверхностей

Для построениятрехмерных графиков используют операторыplot3d, plot3d1иmesh.

Обращение к ним следующее:

plot3d(x,y,z,[theta,alpha,leg,flag,ebox][keyn=valuen]),

plot3d1(x,y,z,[theta,alpha,leg,flag,ebox][keyn=valuen])

 

Здесь x - вектор - столбец значений абсцисс;

y - вектор - столбец значений ординат;

z - матрица значений функции;

theta, alpha - действительные числа, которые определяют в градусах сферические координаты угла зрения на график. Попросту говоря, это угол, под которым наблюдатель видит отображаемую поверхность;

leg - подписи координатных осей графика - символы, отделяемые знаком @. Например , 'X@Y@Z'.

flag – массив, состоящий из 3 целочисленных параметров [mode,type,box]. Здесь mode устанавливает цвет поверхности.

Значения параметра mode

>0 - поверхность имеет цвет «mode», выводится прямоугольная сетка.

0 - выводится прямоугольная сетка, заливка отсутствует (белый цвет).

<0 - поверхность имеет цвет «mode», отсутствует прямоугольная сетка.

По умолчанию, равен 2 - цвет заливки синий, прямоугольная сетка выводится.

type - позволяет управлять масштабом графика, по умолчанию имеет значение 2.

Значения параметра type

0 - применяется способ масштабирования, как у ранее созданной графики.

1 - границы графика указываются вручную с помощью параметра ebox.

2 - границы графика определяют исходные данные.

Box - определяет наличие рамки вокруг отображаемого графика. По умолчанию равен 4.

Значения параметра box

0 и 1 - нет рамки

2 - только оси, находящиеся за поверхностью

3 - выводится рамка и подписи осей

4 - выводится рамка, оси и их подписи.

ebox - определяет границы области, в которую будет выводиться поверхность, как вектор [xmin,xmax,ymin,ymax,zmin,zmax]. Этот параметр может использоваться только при значении параметра type=1.

keyn=valuen - последовательность значений свойств графика key1=value1,key2=value2,...,keyn=valuen, таких как толщина линии, ее цвет, цвет заливки фона графического окна, наличие маркера и др. Таким образом, функции plot3d (plot3d1) в качестве параметров необходимо передать прямоугольную сетку и матрицу значений в узлах сетки.

Примеры:

-->[x, y]=meshgrid([-3:0.15:3]); z=x.^2+y.^2; plot3d(x, y, z)

Задается опорная плоскость для построения трехмерной поверхности, переменные x, y меняются от –3 до 3 с шагом 0,15.

xbasc()

[x, y]=meshgrid([-3:0.15:3]); z=x.^2+y.^2; plot3d(x, y, z,flag=[5,2,3])

Цвет заливки – красный.

xbasc();[x, y]=meshgrid([-3:0.15:3]); z=x.^2+y.^2; plot3d(x, y,z,flag=[5,1,4], ebox=[-5,5,-4,4,-1,20])

xbasc()

t=-%pi:.3:%pi;

plot3d(t,t,sin(t)'*cos(t),35,45,'x@y@z',[5,2,4]);

 

Для формирования прямоугольной сетки впервые в Scilab 4.0 появилась функция meshgrid. Обращение к ней имеет вид:

[X,Y[,Z]]=meshgrid(x,y[,z])

здесь x,y [,z] - массивы 2(3) исходных параметров X, Y (,Z), указываемые через запятую; X, Y [,Z] - матрицы в случае 2 и массивы в случае 3 входных величин.

 

После формирования сетки вывести в нее графику можно с помощью функции surf либо mesh. Так же, как и в случае с функциями plot3d и plot3d1, surf строит поверхность, заливая каждую ячейку цветом, который зависит от конкретного значения функции в узле сетки, а mesh заливает ее одним цветом.

Таким образом, mesh является полным аналогом функции surf со значением параметров Сolor mode=индекс белого цвета в текущей палитре цветов и Сolor flag=0.

-->[x, y]=meshgrid(-2:0.2:2, -3:.2:3); z=x.^2+y.*sin(x); mesh(x,y,z)

 

-->[x, y]=meshgrid(-2:0.2:2, -3:.2:3); z=x.^2+y.*sin(x); surf(x,y,z)

Программа, приведенная ниже, показывает, как можно в одном окне построить графики двух трехмерных функций (оператор mtlb_hold('on');). Правда, и без этого оператора график остается таким же.

[x y]=meshgrid(-2:0.2:2,-2:0.2:2);

z=3*x.^2+4*y.^2-1;

z1=-3*x.^2-4*y.^2-1;

surf(x,y,z);

mtlb_hold('on');

mesh(x,y,z1);

Сферу можно построить так:

u = linspace(-%pi/2,%pi/2,40);

v = linspace(0,2*%pi,20);

X = cos(u)'*cos(v);

Y = cos(u)'*sin(v);

Z = sin(u)'*ones(v);

plot3d2(X,Y,Z);

Оператор v = linspace(0,2*%pi,20);задает вектор v, состоящий из 20 значений с шагом π/10.

 

Замена последней строки программы на plot3d3(X,Y,Z); дает

Оформление и комбинирование графиков

После того, как график построен, Scilab позволяет выполнить его форматирование.

Для установки над графиком титульной надписи используется команда title

o title(‘string’)

Пример: -->title('График функции sin(x)')

clc

xbasc()

x=1:.1:4;plot(x,sin(x))

xtitle("График функции y=f(x)", "Ось X","Ось Y")

Для установки надписей возле осей x, y и z используются команды

label(‘string’):

o xlabel(‘Ось Х’)

o ylabel(‘Ось Y’)

o zlabel(‘Ось Z’)

Для создания легенды используются различные варианты команды legend.

Одна из них:

o legend([‘string1’,’string2’,’string3’,….],a=pos)

Если pos=1, то легенда помещается в верхний правый угол,

pos=2, то в левый верхний угол,

pos=3, то в левый нижний угол,

pos=4, то в нижний правый угол,

pos=5, легенда перетаскивается мышью.

Пример: -->legend(['sin(x)';'cos(x)';'sin(x)'],a=3);

Для расположения нескольких графиков в одном окне без наложения их друг на друга используется команда subplot.Она должна стоять до оператора построения графика.

o subplot(m,n,p) или subplot(mnp) : m окон по горизонтали, n – по вертикали, p – номер окна, в которое будет выводиться текущий график (нумерация ведется по строкам).

o clf reset удаляет все подокна и возвращают графическое окно в обычное положение.

Пример.

x=1:.1:3;

subplot(211),plot(x,sin(x));subplot(212),plot(x,cos(x))

© 2013 wikipage.com.ua - Дякуємо за посилання на wikipage.com.ua | Контакти