C++封闭曲线移动插值点调节大小算法问题

问题遇到的现象和发生背景

画一条封闭曲线,曲线上的点可以移动,当点移动往外扩的时候,这个点和其相邻两个点 形成的曲线段是往外扩的特点,目前自己实现的是不往外扩。我采用的是B样条构造封闭曲线,采用的是这个博客的方案。

https://blog.csdn.net/cnmgbmsdn/article/details/108188007

我想要达到的结果

想要的效果如图所示:第一个图是拖动某一点,第二个图是拖动点往上走的时候,两条曲线的变化结果。

img


图一

img


图二

img

img

img

img

img

我之前做过一个动态呈现曲线的功能,大概的思路就是三点确定一个圆,圆心肯定是在鼠标点之外的相邻两点的垂直平分线上,具体位置还需要鼠标点的最终位置确定,我当时的是鼠标点松开之后按钮触发此功能