MATLAB三維繪圖(五)高級三維繪圖


MATLAB三維繪圖(五)高級三維繪圖

1、colorbar查看三維繪圖中的內建顏色表,示例:

%% 畫三維圖
clear; clc; close all;
[x, y] = meshgrid(-3:.2:3,-3:.2:3);   % 生成網格
z = x.^2 + x.*y + y.^2;  % z的表達式
subplot(1,2,1);
surf( x, y, z);   % 畫三維圖
box on; 
set(gca,'FontSize', 16,'xLim',[-4 4],'yLim',[-4 4]); % 設置字體顏色和坐標
zlabel('z'); xlabel('x'); ylabel('y');
subplot(1,2,2);
imagesc(z); % 獲取在z軸上的顏色深度表
colorbar;  % 顯示顏色條
axis square;   % 坐標相等
xlabel('x'); ylabel('y');

效果顯示:
在這里插入圖片描述
2、使用colormap設置指定的顏色表,示例:

%%  使用colormap函數指定使用的顏色表
clear; clc; close all;
x=-10:0.1:10;                   %繪圖數據
y=-10:0.1:10;
[X,Y]=meshgrid(x,y);
z=X.^2+Y.^2;
figure;                         %圖形窗口
surf(x,y,z);                    %三維圖的繪制函數
colormap('cool');               %設置顏色
shading interp;
axis square;                    %坐標軸設置
xlabel('x');                    %圖形標注
ylabel('y');
zlabel('z');

效果顯示:
在這里插入圖片描述
3、使用view函數設定觀察三維圖形的視角,示例:

%% 使用view設定不同的視角去看圖形
clear; clc; close all;
sphere(50);  % 畫球
shading flat;  % 顯示風格
material shiny;
axis vis3d off;  % axes畫板
set(gcf,'Color',[1 1 1]);  % 設置figure板為白色
view(-45,20);   % 設置固定角度去看圖

效果顯示:
在這里插入圖片描述
4、使用light函數增加光照,示例:

%% 增加光照
clear; clc; close all;
sphere(50);  % 畫球
shading flat;  % 顯示風格
light('Position',[1 3 2]);  % 光照的位置
light('Position',[-3 -1 3]);
material shiny;
axis vis3d off;  % axes畫板
set(gcf,'Color',[1 1 1]);  % 設置figure板為白色

效果顯示:
在這里插入圖片描述
5、獲取light函數句柄設置使用光照的顏色,示例:

%% 獲取光照句柄顯示不同的光照的效果
clear; clc; close all;
[X, Y, Z] = sphere(64); % 畫球,並且獲取坐標值
h = surf(X, Y, Z); 
axis square vis3d off; % 坐標尺度相同,並且不顯示axes畫板
reds = zeros(256, 3);  % 創建一個256*3的零矩陣
reds(:, 1) = (0:256.-1)/255;
colormap(reds);   % 顯示顏色
shading interp; 
lighting phong;  % 設置光照
set(h, 'AmbientStrength', 0.75, 'DiffuseStrength', 0.5);
L1 = light('Position', [-1, -1, -1]);  % 獲取光照的位置句柄
set(L1, 'Position', [-1, -1, 1]);  % 補光
set(L1, 'Color', 'g');  % 補綠光

效果顯示:
在這里插入圖片描述
6、顯示光的效果,示例:

%% 顯示光的效果
clear; clc; close all;
v = [0 0 0; 1 0 0 ; 1 1 0; 0 1 0; 0.25 0.25 1; ...
0.75 0.25 1; 0.75 0.75 1; 0.25 0.75 1];
f = [1 2 3 4; 5 6 7 8; 1 2 6 5; 2 3 7 6; 3 4 8 7; 4 1 5 8];
subplot(1,2,1); 
patch('Vertices', v, 'Faces', f, ...
'FaceVertexCData', hsv(6), 'FaceColor', 'flat');
view(3);
axis square tight; 
grid on;
subplot(1,2,2); 
patch('Vertices', v, 'Faces', f, ...
'FaceVertexCData', hsv(8), 'FaceColor', 'interp');
view(3); 
axis square tight;
grid on;

效果顯示:
在這里插入圖片描述
7、加載MATLAB提供的數據顯示一個三維地圖效果,示例:

%% 繪制地圖
clear; clc; close all;
load cape
X=conv2(ones(9,9)/81,cumsum(cumsum(randn(100,100)),2));
surf(X,'EdgeColor','none','EdgeLighting','Phong',...
'FaceColor','interp');
colormap(map); 
caxis([-10,300]);
grid off; 
axis off;

效果顯示:
在這里插入圖片描述

想了解更多繪圖信息,請看下面博文:
三維:
MATLAB三維繪圖(四)繪制特殊的三維圖
MATLAB三維繪圖(三)繪制等值線圖
MATLAB三維繪圖(二)使用隱函數作三維圖
MATLAB三維繪圖(一)三維基礎繪圖
MATLAB三維繪圖基礎meshgrid函數的用法解析

二維:
MATLAB二維繪圖(四)其他特殊的二維繪圖函數介紹及用法
MATLAB二維繪圖(三)操作繪圖句柄顯示特定的效果
MATLAB二維繪圖(二)向圖中添加標題,坐標軸,圖標和文字信息
MATLAB二維繪圖(一)使用plot函數進行簡單繪圖
fill填充函數解析及用法示例


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM