%% mesh(X,Y,Z) - сетчатая поверхность % Строим поверхность - функция от двух переменных Z(X,Y) % две квадратные матрицы X,Y (33х33) % Функция [X, Y] = meshgrid(x, y) % формирует массивы X и Y, % которые определяют координаты % узлов прямоугольника, % задаваемого векторами x и y. % Этот прямоугольник задает % область определения функции % от двух переменных, % которую можно построить % в виде 3D-поверхности. [X,Y] = meshgrid(-8:.5:8); %Квадратная матрица % вспомогательная переменная (33х33) R = sqrt(X.^2 + Y.^2) + eps; % Вычисляем значения функции (33х33) Z = sin(R)./R; % поверхность по значениям X,Y,Z % Команда mesh(X, Y, Z, C) выводит на экран % сетчатую поверхность для значений массива Z, % определенных на множестве значений % массивов X и Y. % Цвета узлов поверхности задаются массивом C. % Цвета ребер определяются свойством EdgeColor % объекта surface. mesh(X,Y,Z) %% mesh(X,Y,Z,C) - сетчатая поверхность с заданием цвета % Строим поверхность - функция от двух переменных Z(X,Y) [X,Y] = meshgrid(-8:.5:8,-4:.5:4); % size(Y) =17x33 R = sqrt(X.^2 + Y.^2) + eps; Z = sin(R)./R; C = X.*Y; mesh(X,Y,Z,C) %% Пример задания цвета clc [X,Y,Z] = peaks(25); CO(:,:,1) = zeros(25); % red CO(:,:,2) = ones(25).*linspace(0.5,0.6,25); % green CO(:,:,3) = ones(25).*linspace(0,1,25); % blue mesh(X,Y,Z,CO) %% [X,Y] = meshgrid(-5:.5:5); Z = Y.*sin(X) - X.*cos(Y); s = mesh(X,Y,Z,'FaceAlpha','0.5') s % вывод свойств объекта на экран %% Стиль линии и толщина s.LineStyle=":" s.LineWidth=4 %% s.LineStyle="--" s.LineWidth=4 %% s.FaceColor="interp" %% s.LineStyle="none" s.FaceColor="texturemap" colorbar % "температурная" шкала %% прозрачность s.FaceAlpha=1 %% s.FaceLighting="none" %% surf % Команда surf(X, Y, Z, C) выводит на экран % сетчатую поверхность для значений массива Z, % определенных на множестве значений массивов X и Y. % Цвет ячейки определяется массивом C. % Цвет ребер - черный, определяется свойством EdgeColor, % специфицированным как [0 0 0]. [X,Y] = meshgrid(1:0.5:10,1:20); Z = sin(X) + cos(Y); s=surf(X,Y,Z) %% s.EdgeColor="flat" % линии сетки %% surf - сетчатая поверхность s.EdgeColor="interp" %% surf - сетчатая поверхность с цветом [X,Y] = meshgrid(1:0.5:10,1:20); Z = sin(X) + cos(Y); C=X-Y s=surf(X,Y,Z,C) %% meshc - объемная сетчатая диаграмма с графиком ниже ее clc [X,Y] = meshgrid(-3:.125:3); Z = peaks(X,Y); s=meshc(X,Y,Z) s(1).LineWidth=2 % для плоского графика толщина линий 4 s(2).LineWidth=4 %% s(1).EdgeColor = 'r'; s(2).EdgeColor = 'b'; %% s(2).ZLocation = 'zmax'; %% surfc - объемная сетчатая диаграмма с графиком ниже ее [X,Y] = meshgrid(1:0.5:10,1:20); Z = sin(X) + cos(Y); surfc(X,Y,Z) %% [X,Y] = meshgrid(-3:.125:3); Z = peaks(X,Y); C = X.*Y; surfc(X,Y,Z,C) colorbar %% [X,Y] = meshgrid(-5:.5:5); Z = Y.*sin(X) - X.*cos(Y); s = surfc(X,Y,Z) ax = gca; ax.ZLim(2) = 15; s(2).ZLocation = 'zmax'; s(2).LineWidth=3; s(1).FaceAlpha=0.5; %% [X,Y] = meshgrid(-5:.5:5); Z = Y.*sin(X) - X.*cos(Y); s = surfc(X,Y,Z,'FaceColor','g','EdgeColor','r','LineWidth',2); %% meshz - cетчатая поверхность с высотой z [X,Y] = meshgrid(-3:.125:3); Z = peaks(X,Y); s=meshz(X,Y,Z) s %% meshz(X,Y,Z,C) - c цветом [X,Y] = meshgrid(-3:.125:3); Z = peaks(X,Y); C = gradient(Z); s=meshz(X,Y,Z,C) colorbar %% s.EdgeColor='b' %% pcolor % Псевдоцвет отображает матричные данные % об отображениях на графике % как массив цветных ячеек X = [1 2 3; 1 2 3; 1 2 3]; Y = X'; mymap = [1 0 0; 0 1 0; 0 0 1; 1 1 0; 0 0 0]; C = [3 4 5; 1 2 5; 5 5 5]; pcolor(X,Y,C) colormap(mymap) %% C = [5 13 9 7 12; 11 2 14 8 10; 6 1 3 4 15]; s = pcolor(C); s.FaceColor = 'interp'; %% Матрица Адамара C = hadamard(20); pcolor(C) colormap(gray(2)) axis ij axis square %% surface - поверхность colormap("default") [X,Y] = meshgrid(1:0.5:10,1:20); Z = sin(X) + cos(Y); surface(X,Y,Z) %% view(3) %% [X,Y] = meshgrid(1:0.5:10,1:20); Z = sin(X) + cos(Y); C = X.*Y; surface(X,Y,Z,C) colorbar view(3) %% [X,Y] = meshgrid(-5:.5:5); Z = Y.*sin(X) - X.*cos(Y); s = surface(X,Y,Z,'FaceAlpha',0.5); view(3) %% % surfl - самостоятельно %% plot3 - t = 0:pi/500:pi; xt1 = sin(t).*cos(10*t); yt1 = sin(t).*sin(10*t); zt1 = cos(t); xt2 = sin(t).*cos(12*t); yt2 = sin(t).*sin(12*t); zt2 = cos(t); s=plot3(xt1,yt1,zt1,xt2,yt2,zt2) s(1).LineWidth=4; s(2).LineWidth=4; %% t = 0:pi/500:40*pi; xt = (3 + cos(sqrt(32)*t)).*cos(t); yt = sin(sqrt(32) * t); zt = (3 + cos(sqrt(32)*t)).*sin(t); plot3(xt,yt,zt) axis equal xlabel('x(t)') ylabel('y(t)') zlabel('z(t)') %% t = 0:pi/50:10*pi; xt = sin(t); yt = cos(t); plot3(xt,yt,t,'o') %% t = 0:pi/20:10*pi; xt = sin(t); yt = cos(t); plot3(xt,yt,t,'-o','Color','b','MarkerSize',10,... 'MarkerFaceColor','#D9FFFF') %%