zoukankan      html  css  js  c++  java
  • 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填充函数解析及用法示例

  • 相关阅读:
    Python学习(3)——if语句
    Python学习(2)——编码
    一次性邮箱
    Python学习(1)
    Hello World
    java设计模式创建篇------原型模式
    Java技巧------Cloneable接口与clone方法
    java设计模式创建篇------抽象工厂
    java设计模式创建篇------工厂模式
    python函数式编程
  • 原文地址:https://www.cnblogs.com/zhicungaoyuan-mingzhi/p/12447988.html
Copyright © 2011-2022 走看看