• Matlab绘图基础——其他三维图形(绘制填充的五角星)


     

    其他三维图形

     

    %绘制魔方阵的三维条形图
    subplot(2,2,1);
    bar3(magic(4));
     
    %以三维杆图形式绘制曲线y=2sin(x)
    subplot(2,2,2);
    y=2*sin(0:pi/10:2*pi);
    stem3(y);
     
    %已知x=[2347,1827,2043,3025],绘制饼图
    subplot(2,2,3);
    pie3([2347,1827,2043,3025]);
     
    %用随机的顶点坐标值画出2个黄色三角形
    subplot(2,2,4);
    fill3(rand(3,2),rand(3,2),rand(3,2), 'y' );
    %fill3函数等效于二维函数fill,可在三维空间内绘制出_填充多边形_
    %格式:fill3(x,y,z,c)

    应用示例:

     

    例一:统计灰度图片的“灰度频率直方图”和“累计直方图”

     

    A = imread('pout.tif') ;  %读取一个内置图片
    %%内置图片放在……MATLABR2010* oolboximagesimdata 
    A = A(:)';
    count0=zeros(1,256);       %设置矩阵大小
    for x=1:length(A),count0(A(x)+1)=count0(A(x)+1)+1;end    %各灰度级像素个数
    P=count0/length(A);                                      %频率
    stem(P,'Marker','none'); axis tight%作图显示  频率直方图
    Hp=P;
    for i=2:256,Hp(i)=P(i)+Hp(i-1);end   %累计直方图
    stem(Hp,'Marker','none'); axis tight;  %作图显示

     
     
    例二:绘制填充空间五角星
     
    %%%方法一
    t=1:2:11;  
    x = sin(0.4*t*pi);   %五角星嘛!  六角星可以除以6
    y = cos(0.4*t*pi);
    z=0.5*x+0.3*y;  %放置到三维空间中,这是该五角星所在的三维平面函数
    fill3(x,y,z,'r')
    xlabel('x');ylabel('y');zlabel('z');
    haxes = gca;   axis square;box on;
    set(haxes,'xticklabel','','yticklabel','','zticklabel','')  %移除原图坐标轴轴的标注
    %注意fill是顺时针方向的,所以五角星闭合后,中间的五边形并没有填充%%地图多边形矢量化你懂得

    hold on;  %填充五边形
    t=1:2:11;
    x=cos(0.4*pi)/cos(0.2*pi)*sin(0.2*t*pi);
    y=cos(0.4*pi)/cos(0.2*pi)*cos(0.2*t*pi);
    z=0.5*x+0.3*y;
    fill3(x,y,z,'r','EdgeColor','r');  %将五边形的边界颜色设置为红色
        %%%显示五角星所在的边界 一个圆圈
        t=1:0.1:11;   
        x = cos(0.4*t*pi);
        y = sin(0.4*t*pi);
        z=0.5*x+0.3*y;
        plot3(x,y,z);hold off;
     
    %%%方法二
    i=1;
    for ag=0.2*pi:0.2*pi:2.2*pi
        if mod(i,2)==1  %i是奇数,长边,按照长边的计算公式
            x(i) = sin(ag);   %五角星嘛!  六角星可以除以6
            y(i) = cos(ag);
        else      %i是偶数,短边,按照短边的计算公式
            x(i)=cos(0.4*pi)/cos(0.2*pi)*sin(ag);
            y(i)=cos(0.4*pi)/cos(0.2*pi)*cos(ag);
        end
        i=i+1;
    end;clear i ag;
    z=0.5*x+0.3*y;
    fill3(x,y,z,'r','EdgeColor','r'); 
    xlabel('x');ylabel('y');zlabel('z');
    haxes = gca;   axis square;box on;
    set(haxes,'xticklabel','','yticklabel','','zticklabel',''
     
    如果你觉得文章写得还不错,欢迎打赏、关注、收藏本站。
    对于文章内容,博主尽量做到真实可靠,并对所引用的内容附上原始链接。但也会出错,如有问题,欢迎留言交流~
    若标题前没有“[转]”标记,则代表该文章为本人(司徒鲜生)所著,转载及引用请注明出处,谢谢合作!
    本站首页:http://www.cnblogs.com/stxs/
    最新博客见CSDN:https://blog.csdn.net/qq_45887327
  • 相关阅读:
    Leetcode: Total Hamming Distance
    Leetcode: Hamming Distance
    Leetcode: Valid Word Square
    Leetcode: Sentence Screen Fitting
    Leetcode: Minimum Unique Word Abbreviation
    Leetcode: Design Phone Directory
    Leetcode: Valid Word Abbreviation
    Leetcode: Range Addition
    Leetcode: Find Leaves of Binary Tree
    Leetcode: Design Hit Counter
  • 原文地址:https://www.cnblogs.com/stxs/p/8617182.html
Copyright © 2020-2023  润新知