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.上畫的圖:

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM