所以,我有两个点,比如说A和B,每个点都有一个已知的(x,y)坐标和一个同一坐标系中的速度矢量。我想编写一个函数来生成一组弧(半径和角度),将A引导到状态B.
角度差是已知的,因为我可以通过减去速度单位矢量来得到它。假设我用(radius = r,angle = theta)移动一定距离然后我进入完全相同的情况。它有独特的解决方案吗?我只需要一个解决方案,甚至是近似解决方案。
当然我可以通过给出一个圆和一条线(半径= infine)来解决它,但这不是我想要做的。我认为有一个库有这个功能,因为它是一种非常常见的方法。
答案 0 :(得分:1)
biarc是由两个圆弧组成的平滑曲线。给定两个切线点,几乎总是可以构造一个穿过它们的biarc(正确的切线)。
这是几何建模中非常基本的例程,它对于用弧线平滑逼近arbirtrary曲线(bezier,NURBS等)是必不可少的。在CAM中大量使用弧和线的近似,因为建模者使用NURBS没有问题,但机器控制器通常只能理解线和弧。所以我强烈建议阅读这个主题。
特别是,这里有关于biarc的great article on biarcs,我认真地建议阅读它。它甚至包含一些工作代码和一个交互式演示。