y=x,z=0的平面怎么畫

創(chuàng)新互聯(lián)建站從2013年開始,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目網(wǎng)站制作、網(wǎng)站建設(shè)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元葫蘆島做網(wǎng)站,已為上家服務(wù),為葫蘆島各地企業(yè)和個人服務(wù),聯(lián)系電話:028-86922220
方法一、用ezmesh 函數(shù)直接畫出該平面,命令如下:
ezmesh('0')
%ezmesh是用來畫三維隱函數(shù)的圖像,ezmesh('0')命令意思即是畫出z=0的平面。如果要畫z=x+y-5的三維圖像,輸入命令ezmesh('x+y-5'),然后回車即可。
方法二、用meshgrid和ones這兩個函數(shù)畫該平面,命令如下:
X=-1:.1:1;
[X Y]=meshgrid(X);
Z=ones(size(X))-1;
mesh(X,Y,Z)
%meshgrid函數(shù)是打網(wǎng)格用的,用以產(chǎn)生網(wǎng)格坐標(biāo),ones函數(shù)則用來生成各行各列元素都為1的矩陣。
最常用的是在類定義的方法,給一個property的裝飾器,可以安裝調(diào)用屬性的方式調(diào)用
像Maple、Mathematica中就有類似implicitplot3()的三維隱函數(shù)繪圖函數(shù)
自定義三維隱函數(shù)繪制函數(shù)
全世界人都知道Matlab那幾千個庫函數(shù)中,可恨的是,卻偏偏不提供個三維隱函數(shù)的圖像繪制的函數(shù),真是郁悶死了
好,下面我們看一個三維隱函數(shù)繪制的應(yīng)用,它靈活的應(yīng)用了Matlab的isosurface()(等值面函數(shù)),繪制出來的圖效果還比較好
function implot3(fun,rangxyz,ngrid,varargin)
%三維隱函數(shù)繪圖
%
%輸入?yún)?shù)說明
-fun 函數(shù)句柄,可以是匿名、inline和M函數(shù)
% -rangexy=[xmin xmax ymin ymax,zmin,zmax] 繪圖范圍
% -ngrid 繪圖時計(jì)算的點(diǎn)數(shù)
%
%Example
%fun=@(x,y,z)(x+y+z).*(x.*y+x.*z+y.*z)-10*x.*y.*z;
%rangxyz=[1 10 1 10 1 10];ngrid=50;
%implot3(fun,rangxyz,ngrid)
%
%rewrite by dynamic
%all rights reserved by
x=linspace(rangexy(1),rangexy(2),ngrid);
y=linspace(rangexy(3),rangexy(4),ngrid);
z=linspace(rangexy(5),rangexy(6),ngrid);
[xx,yy,zz]=meshgrid(x,y,z);
fvector=vectorize(fun);% 將目標(biāo)函數(shù)矢量化
f=f(fvector,xx,yy,zz,varargin{:});
p=patch(isosurface(xx,yy,zz,f,0),varargin{:});
set(p, 'FaceColor', 'red', 'EdgeColor', 'none');
daspect([1 1 1])
view(3)
camlight;
lighting phong
可以的。這也算多態(tài)的一種,比如: def duck(A):return A.duck() class pop():def duck():return "what does the duck say~" class regular():def duck():return "Quack!" duck(pop)'what does the duck s
在matlab中可以利用三維數(shù)據(jù)等值面繪制函數(shù)isosurface來繪制三維隱函數(shù)的圖像
三維隱函數(shù)可以描述,為方程 f(x,y,z)=0;
如果我們定義函數(shù)v=?f(x,y,z)
在一定的下x,y,z的定義域內(nèi)計(jì)算出一個三維區(qū)間中v的值
然后方程f(x,y,z)=0的圖像,其實(shí)就是v=0時的等值面,是一個三維曲面
在matlab中可以用isosurface函數(shù)實(shí)現(xiàn)
例子,繪制隱函數(shù) x^3+y^3+z^3=1的函數(shù)圖像
range=linspace(-1,1,21);
[x,y,z]=meshgrid(range,range,range);%生成一定定義域內(nèi)x,y,z矩陣
v=x.^3+y.^3+z.^3-1;%計(jì)算函數(shù)數(shù)值,三位分布
p?=?patch(isosurface(x,y,z,v,0));%用isosurface畫等值面
%等值面是三角網(wǎng)格表示的,用patch函數(shù)之后,更容易修改曲面顏色等
p.FaceColor?=?'none';
p.EdgeColor?=?'red';
daspect([1,1,1])
view(3);?axis?tight
grid?on;
xlabel('x'),ylabel('y'),zlabel('z');
view(45,30);
對于一般的三維隱函數(shù)繪圖,可以使用isosurface函數(shù):
n?=?30;
x?=?linspace(0,?100,?n);
y?=?linspace(0,?2000,?n);
z?=?linspace(0,?50,?n);
[z,?y,?x]?=?meshgrid(x,?y,?z);?
v?=?4.12*(z-50.48).^3?+?18.08*(y-2160).*(z-50.48)?-?127.28*(x-21.56);
[faces,verts,colors]?=?isosurface(x,y,z,v,0,z);?
patch('Vertices',?verts,?'Faces',?faces,?...?
'FaceVertexCData',?colors,?...?
'FaceColor','interp',?...?
'edgecolor',?'interp');
xlabel?z,?ylabel?y,?zlabel?x
view(-60,10)
需要說明的是,按圖中要求,x-y-z三軸的數(shù)據(jù)應(yīng)分別對應(yīng)z-y-x,換言之,x和z互換,所以,代碼中的meshgrid函數(shù)以及下面的表達(dá)式都要進(jìn)行交換。
對于本題而言,函數(shù)可以寫成z=f(x,y)顯函數(shù)的形式,所以也可以直接用surf繪圖:
x?=?linspace(0,?100,?n);
y?=?linspace(0,?2000,?n);
[x,?y]?=?meshgrid(x,?y);
z?=?(4.12*(x-50.48).^3?+?18.08*(y-2160).*(x-50.48))?/?127.28?+?21.56;
surf(z,?y,?x,?'edgecolor',?'none')
xlabel?z,?ylabel?y,?zlabel?x
xlim([0?50])
view(-75,6)
這里同樣要注意調(diào)用surf函數(shù)時變量的互換。
如果不限制z的范圍,畫出來的曲面如下所示:
網(wǎng)站名稱:python三維隱函數(shù),三維隱函數(shù)繪圖
URL地址:http://chinadenli.net/article6/dsgipog.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開發(fā)、服務(wù)器托管、營銷型網(wǎng)站建設(shè)、響應(yīng)式網(wǎng)站、定制開發(fā)、自適應(yīng)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)