如何在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 :(得分:3)
surf()
只是绘制你提供的任何点数。要生成这些点,您需要在X
和Y
给出的特定坐标集上评估等式。因此,您希望这些点以感兴趣区域为中心:
[X, Y] = meshgrid(95:0.1:105); % e.g. +/-5 at resolution of 0.1
或者说,对于任意视图坐标m
,n
:
[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左右查看原始平面。