2014-01-11 122 views
0

如何在Matlab的特定點繪製3D平面?在Matlab中繪製3D平面?

考慮平面方程

Z=(-a * X - b * Y)/c 

具有以下係數:

a=0.01; b=0.03; c= 1; d=0. 

我想繪製點左右(100,100),這架飛機不是原點(0,0)。如何做到這一點?

的代碼我使用:

[X,Y] = meshgrid(x); 
a=0.1; 
b=0.2; 
c=1; 
d=0; 
Z=(-a * X - b * Y)/c; 
surf(X,Y,Z) 
shading flat 
xlabel('x') 
ylabel('y') 
zlabel('z') 
+0

你的意思是你想繪製它圍繞X = 100和Y = 100?在什麼範圍? –

+0

如果你在matlab中繪製一個3D平面,默認情況下,平面的中心位於(0,0,0)處。我想讓飛機的中心位於(100,100,0)而不是(0,0,0)。 – CS2013

+0

你的意思是「情節」,對吧?我不知道這樣的默認。你能否包括代碼來顯示你指的是什麼? –

回答

3

surf()任何點的設置,你給它只是圖。要生成這些點,您需要在由XY給定的特定座標集處評估公式。因此,你要這些點到感興趣的區域周圍爲中心:

[X, Y] = meshgrid(95:0.1:105); % e.g. +/-5 at resolution of 0.1 

,或者說,對於任意視圖座標mn

[X, Y] = meshgrid(m-20:m+20, n-20:n+20); % e.g. +/-20 at resolution of 1 

這讓你周圍的平面100,100的看法集中在原點,我認爲這是你要求的。

或者,如果你想本身集中在100,100飛機,那麼你需要這個方程偏移:

Z=(-a * (X - 100) - b * (Y - 100))/c; 

所以後來集中在原點的視圖將相當於繞查看原平面-100,-100。