如何在MatLab中找到曲线上一点的法向量

3

我有一条曲线,希望找到该曲线上给定点的法向量,之后还需要将该法向量与另一个向量进行点积。

我尝试使用MatLab的梯度函数,但是我猜它在需要在特定点处找到梯度时不起作用,但我不确定我是否错误。

请指导我如何在MatLab中实现此操作。

先行致谢。


重要提示:这是一条解析曲线吗?也就是说,你有一个用来生成它的方程式吗?还是从数据中获得的? - horchler
你能分享一下你目前的Matlab代码吗?这样会更容易理解你的问题并提供帮助。 - Schorsch
@Horchler - 是的,我有一个生成它的方程。MatLab代码非常长,我认为阅读这样一段长代码是不太方便的。 - Sagar
2个回答

7
使用这个 Stack Overflow 神奇问题 中的解释:
如果定义dx=x2-x1,dy=y2-y1,则法线为(-dy, dx)和(dy, -dx)。
以下是使用分析曲线y = x^2的示例。
x = 0:0.1:1;
y = x.*x;
dy = gradient(y);
dx = gradient(x);
quiver(x,y,-dy,dx)
hold on; plot( x, y)

这给出了:

Quiver

附注: 非常抱歉提供了一个离题的例子!!!我有点匆忙。感谢Schorsch和Shawn314!


这些不是切向量而是法向量吗? - Schorsch
我的想法和Schorsch一模一样。 - Shaun314

0

我不想这么说,但回到微积分1可能是一个相当可行的选择。在你的点处计算曲线的导数,找到法线,我认为如果你只是谷歌搜索“Matlab deriviate”和“计算导数的法线”,你应该会得到很好的结果。


谢谢你的建议,不过对于任何人来说,这将是尝试的第一个选项。然而,这不是我想要的。不管怎样,还是谢谢! - Sagar
是啊,看起来另一个答案真的很好,我知道还有许多FEX条目也可以计算2D和3D曲线,所以那些也值得一试。祝你好运! - Shaun314

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