加载中…
个人资料
meme
meme
  • 博客等级:
  • 博客积分:0
  • 博客访问:60,043
  • 关注人气:12
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
相关博文
推荐博文
谁看过这篇博文
加载中…
正文 字体大小:

matlab中patch函数详解

(2012-03-30 15:55:10)
标签:

杂谈

http://hi.baidu.com/���³���/blog/item/1d5ab8140a087b07b8127bff.html

patch函数是matlab中用来给某个区域填充颜色的函数,直接翻译patch就是补丁的意思,看来还真是名副其实啊,下面详细解答一下它的用法吧。

      说的也不是很详细,具体可看matlab中的help信息,进行详解。

     在学习MATLAB时,多看例子有不懂的语句可以按住ctrl+R进行隐藏注视后,查看与原程序有何不同,再安ctrl+T进行取消注释行即可。

1、 2维情况如下:x、y代表点区域坐标,patch(x, y, [r g b]);

   》 patch([0 .5 1], [0 1 0], [1 0 0])

显示如下图:

             matlab中patch函数详解

2、下面是利用patch绘制3维图像,主要有两种格式:一种先给出所有点的x y z坐标,再填充色彩,如下例:

clear
x=[ 0 1 1 0 0 0;
    1 1 0 0 1 1;
    1 1 0 0 1 1;
    0 1 1 0 0 0];
y=[ 0 0 1 1 0 0;
    0 1 1 0 0 0;
    0 1 1 0 1 1;
    0 0 1 1 1 1];
z=[ 0 0 0 0 0 1;
    0 0 0 0 0 1;
    1 1 1 1 0 1;
    1 1 1 1 0 1];

figure(1);
patch(x,y,z,'r');  
% 此种patch函数格式,按照面来填充。每个面按点来叙述的. X坐标面是按照列实现,
% 每个面按照逆时针旋转记录,最后一个面要格外注意记录方式。
view(3)
axis([-3 3 -3 3 -3 3]);
xlabel('x /km');
ylabel('y /km');
zlabel('z /km');
grid on;
box on;           %显示如下图

matlab中patch函数详解

3、另一种是,给出每个点的x y z坐标后,在把每个面用点号表示后,在绘制填充颜色。如下例子:

%
% Learning how to use patch
%
clear
v1=[ 0 0 0;
     1 0 0;
     1 1 0;
     0 1 0;
     0 0 1;
     1 0 1;
     1 1 1;
     0 1 1];
 f1=[1 2 6 5;  
     2 3 7 6;
     3 4 8 7;
     4 1 5 8;
     1 2 3 4;
     5 6 7 8];   % 每行是表示一个面的四个点号,一个6个面
      
figure(2);
c=hsv(1);
c1(1,:)=[1 0 0]; %第一个红色
c1(2,:)=[0 1 0]; %2绿色
c1(3,:)=[1 1 0]; %3
c1(4,:)=[1 0 1]; %
c1(5,:)=[1 1 1]; %
c1(6,:)=[0 0 1]; %蓝色
按照点和面单独的来陈述,v1是一个点数据按照逆时针方向进行,填充按照面的顺序来填充
you can check this:Multifaceted Patches::Creating 3-D Moedls with Patches
patch('Vertices',v1,'Faces',f1,...
         'FaceVertexCData',c1,...
           'FaceColor','flat');
axis([-3 3 -3 3 -3 3]);
title('patch function show');
xlabel('x /km');
ylabel('y /km');
zlabel('z /km');
grid on;
box on;                    %显示如下图


matlab中patch函数详解

0

阅读 评论 收藏 转载 喜欢 打印举报/Report
  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

      

    新浪BLOG意见反馈留言板 电话:4000520066 提示音后按1键(按当地市话标准计费) 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有