0

我们在 3d 空间中有两个点 (x1,y1,z1) 和 (x2,y2,z2)。我们有一条固定长度的曲线,要在这些点之间连接(不是直线)。Matlab中的代码如何进行?

4

2 回答 2

1

如果您试图最小化机器人关节处的弯曲角度,那么最佳曲线将是圆弧。

令 L 为圆弧的长度,d 为端点之间的距离,theta 为圆弧角度的一半,r 为圆弧的半径。然后:

d/L = sin(theta)/theta ==> 使用 Matlab 的求解器之一为 theta 数值求解

一旦你有了 theta,圆弧的半径就是:r = L / (2 * theta)

在这个 r 和 theta 的两个端点之间仍然有无限数量的弧。您必须使用其他一些标准来选择要使用的点的滚动角度。

于 2009-02-17T00:11:58.023 回答
1

在不知道您尝试使用蛇(即活动轮廓)的情况下,我能做的最好的就是建议这些链接:

我遇到的大多数活动轮廓的应用似乎更多地用于二维图像分割,但希望这些链接能给你一些起点。

于 2009-02-16T05:40:03.283 回答