• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

MATLAB三维绘图(五)高级三维绘图

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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填充函数解析及用法示例


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Delphi2007代码在Delphi2009使用时候碰到的Unicode问题发布时间:2022-07-18
下一篇:
Delphi7开发环境的配置发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap