【问题标题】:How to find the normal vector at a point on a curve in MatLab如何在 MatLab 中找到曲线上一点的法向量
【发布时间】:2013-06-26 15:57:14
【问题描述】:

我有一条曲线,我想在这条曲线上的给定点找到法向量,稍后我必须找到这个法向量与另一个向量的点积。

我尝试了MatLab的渐变功能,但是当我们需要在特定点找到渐变时,我想它不起作用我仍然不确定我是否错了。

请指导我如何在 MatLab 中实现这一点。

提前致谢。

【问题讨论】:

  • 重要:这是一条解析曲线,即,您是否有生成它的方程?或者是从数据中获得的。
  • 你能分享你的 Matlab 代码吗?到目前为止你有什么?这将使您更容易理解您的问题并为您提供帮助。
  • @Horchler - 是的,我有和方程式来生成它。MatLab 代码很长,我不认为通过这么长的代码会很方便。

标签: matlab gradient curve normals


【解决方案1】:

使用这个incredible SO question的解释:

如果我们定义 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)

给出:

PS: 对不起,切线的例子!赶时间了。感谢 Schorsch 和 Shawn314!

【讨论】:

  • 这些不是切线向量而不是法线向量吗?
  • 我的想法完全是 Schorsch
【解决方案2】:

我不想这么说,但在这里回到微积分 1 可能是一个非常可行的选择。在你的点计算曲线的导数,找到正常的,我认为如果你只是谷歌“Matlab导数”和“计算正常到导数”你应该很好

【讨论】:

  • 感谢您的建议,但 any1 将是第一个尝试的选项。然而,这不是我想要的。无论如何,谢谢!
  • 是的,看起来另一个答案非常好,而且我知道还有很多 FEX 条目,我认为它们是为 2-d 和 3-d 曲线计算的,所以这些可能是也值得一试,祝你好运!
猜你喜欢
  • 1970-01-01
  • 2019-12-16
  • 1970-01-01
  • 2013-12-31
  • 2021-04-02
  • 1970-01-01
  • 2020-02-13
  • 2020-07-07
  • 1970-01-01
相关资源
最近更新 更多