zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    MVC模式-----struts2框架(2)
    MVC模式-----struts2框架
    html的<h>标签
    jsp脚本元素
    LeetCode "Paint House"
    LeetCode "Longest Substring with At Most Two Distinct Characters"
    LeetCode "Graph Valid Tree"
    LeetCode "Shortest Word Distance"
    LeetCode "Verify Preorder Sequence in Binary Search Tree"
    LeetCode "Binary Tree Upside Down"
  • 原文地址:https://www.cnblogs.com/stxs/p/8617182.html
Copyright © 2011-2022 走看看