2014-01-11 118 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。