Студопедия

КАТЕГОРИИ:

АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника


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




Для построениятрехмерных графиков используют операторы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); дает


Поделиться:

Дата добавления: 2015-02-09; просмотров: 127; Мы поможем в написании вашей работы!; Нарушение авторских прав





lektsii.com - Лекции.Ком - 2014-2024 год. (0.006 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты