zoukankan      html  css  js  c++  java
  • MATLAB 绘透视图

    MATLAB绘图随记(1)--如何画一个透明平面

    http://blog.sina.com.cn/s/blog_5cd4cccf0100q90p.html

    小老板让我绘个图

    找了些资料 最后发现matlab绘图功能还是很强大的
    列举点小小小皮毛
    set(gca,'XLim',[-2 2],'YLim',[-2 2],'ZLim',[-2 2])
    这个是改变坐标长度的
    但是只能成比例修改才显示的出来
    例如我画了个单位球
    如果只修改XLim 他显示的仍是原图
     
    首先,来说一下如何画一个透明的平面
    x=-100:50:100;
    y=x;
    [x,y]=meshgrid(x,y)
    z=x*0;
    surf(x,y,z)
    alpha(.5)
    效果如下
    如果把坐标的间隔设置的太小 则会造成是面太小 ,线太多。
    而alpha设置的透明度是设设置面的透明度,线不可避免
    第二步,就是如何去除掉线了
    加一句shading interp
    就OK啦
      
     
    整个代码如下
     
    x=-100:50:100;
    y=x;
    [x,y]=meshgrid(x,y)
    z=x*0;
    %[x,y,z]=sphere(20)
    surf(x,y,z);
    shading interp
    set(gca,'ZLim',[-100 100])
    axis equal
    alpha(0.6)
     
    效果图
     
     
     

    MATLAB画矩形的简单手工打造方法  

    http://zhongcheng0519.blog.163.com/blog/static/16169068820130129515760/

    MATLAB中画矩形,当然有很简单的办法,一个rectangle函数就可以简单搞定。然而,如果想自己弄一个呢,就比较麻烦了。例如,若想在平面上画一个的矩形,其中分别为横纵坐标。最简单的办法当然就是一根线一根线的画。这样来弄毕竟比较复杂,也很容易出错。但如果利用下面的公式来画矩形,我想就比较简单了:

        

    MATLAB来实现则为

    x1 = -2:0.1:2;

    x2 = 2:-0.1:-2;

    [X1,X2] = meshgrid(x1,x2);

    Z = (max(abs(X1),abs(X2)) == 1);

    figure,imshow(Z);

    接下来,如果需要对矩形进行平移、拉伸等操作,就只需要在第四条语句上稍作修改即可。即,假设起始于a,结束于b起始于c,结束于d。则第四条语句可更改为

    Z = (max(abs(X1-(a+b)/2)/(b-a),abs(X2+(c+d)/2)/(b-a)) == 1);

    这样,就可以用较为简单的方法画出矩形。

    Matlab 三维作图 3-D Graph

    http://hi.baidu.com/nature_and_man/item/93a2f5183024310ce65c36c7

    .............

    画一个可透视的椭球


    figure

    a = 15;
    b = 10;
    c = 5;

    k = 5;
    n = 2^k-1;
    theta = pi*(-n:2:n)/n;
    phi = (pi/2)*(-n:2:n)'/n;
    X = a*cos(phi)*cos(theta);
    Y = b*cos(phi)*sin(theta);
    Z = c*sin(phi)*ones(size(theta));
    surf(X,Y,Z,'FaceColor','interp',...
        'EdgeColor','none',...
        'FaceLighting','phong')

    axis tight
    camlight left
    alpha(.33)   % 产生透视效果

    这是在7.1.上画的图:

  • 相关阅读:
    Twitter网站架构学习笔记
    优化和架构之服务切分
    现代浏览器的工作原理
    可伸缩性原则
    图解:2013年百度搜索引擎工作原理
    构建的可伸缩性和达到的性能:一个虚拟座谈会
    提升可伸缩性的8项最佳实践
    Oracle odbc配置
    Oracle Error
    java与java web数组括号的不同
  • 原文地址:https://www.cnblogs.com/xfzhang/p/3529133.html
Copyright © 2011-2022 走看看