在三维空间中绘制法向量

3

我有两个向量[xn,yn,zn]和[x0,y0,z0],通过叉积运算求得了法向量。现在想在三维空间中绘制出这个法向量,请问应该怎么做呢?我不太清楚如何操作,有什么建议吗?

1个回答

7

箭头标识:

a = [2 3 5]; % your point [x0,y0,z0]
b = [1 1 0]; % your normal vector 
c = a+b; % end position of normal vector

%quiver3 syntax: quiver3(x,y,z,u,v,w)
quiver3(a(1), a(2), a(3), c(1), c(2), c(3));
axis equal;

希望这能使你从你的点向你的法线方向绘制一个矢量...带箭头。如果你想在3D中绘制一条简单的线,你必须使用plot3:

plot3(X1,Y1,Z1,...)

这个函数调用应该与quiver3相同。

编辑/添加:我刚看到可能误解了quiver3的功能。实际上,似乎不需要从a中减去或添加b,因为quiver3只是将给定的向量(u,v,w)加到点(x,y,z)上。没有进行检查,我认为调用应该如下:

a = [2 3 5]; % your point [x0,y0,z0]
b = [1 1 0]; % your normal vector 
quiver3(a(1), a(2), a(3), b(1), b(2), b(3));

如果我没错的话,有两个合法的正常向量。如果你想要绘制另一个向量,只需从a中减去b:c = a-b; - Matthias
它在我这里没起作用,但无论如何,函数和解释已经足够让我以后思考了。谢谢。 - Jack_111
我该如何使用Plot3来实现? - Jack_111
非常抱歉我无法进行测试。那么怎么样:plot3(a(1):.1:b(1), a(2):.1:b(2), a(3):.1:b(3)) … 或者是 line([a(1), b(1)], [a(2), b(2)], [a(3), b(3)])? - Matthias
你上次编辑的答案不起作用了(它没有绘制任何东西)。 - Jack_111
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接