如何计算和绘制一个垂直于已知向量并穿过已知点的平面



我想用Matlab绘制垂直于向量的平面,并穿过一个点。我的向量有坐标v1 = [2,i],我的点有坐标com_m1 = [1,i]

我都试过了:

xx=(-15:-6:0.25);
yy=(-10:-2:0.25);
for i = 1:length(xx)
    for j = 1:length(yy)
            zz_m1(j,i)=(v1(2,2)*(xx(i) - com1(1,1)) + v1(2,2)*(yy(j)-com1(1,2)))/v1(2,3) + com1(1,3);
    end
end
surf(xx,yy,zz_m1, 'FaceColor','red','EdgeColor','none') % Plotting the surface

[xx, yy]=meshgrid(-15:-6:0.25,-10:-1:0.25);
zz_m1=(v1(2,2)*(xx - com1(1,1)) + v1(2,2)*(yy-com1(1,2)))/v1(2,3) + com1(1,3);
surf(xx,yy,zz_m1, 'FaceColor','red','EdgeColor','none')

但两者都不起作用。有人能帮我理解我做错了什么吗?谢谢

您的代码中存在一些问题。最大的是这一行,xx=(-15:-6:0.25);,它产生了一个空矩阵,作为你对从-15开始一直到-Inf的向量的要求。

如果你不理解这个错误,那么你可能应该阅读科隆符号文档。你的矩阵yyxx有同样的问题。

此外,我认为你对这架飞机的计算是错误的。我使用随机生成的v1com1在本地尝试了您的代码,但这条线与平面不垂直。

这里有一个很好的解释,说明如何计算通过一个点并垂直于已知向量的平面的方程:http://msemac.redwoods.edu/~darnold/math50c/matlab/planes/index.xhtml(向下滚动到平面是曲面

相关内容

  • 没有找到相关文章