三次样条:开始/结束段插值
Cubic Spline : Start/End Segment interpolation
我正在用c++做样条插值。我从这里使用的代码:http://tehc0dez.blogspot.ch/2010/04/nice-curves-catmullrom-spline-in-c.html(代码也链接在该页上,它在github上)。这个应用程序对闭合轮廓很好,因为它复制了前三个点到最后。
但在我的情况下,我需要能够做出一个"开放"的形状-或者更确切地说线-其中第一个点和最后一个点没有连接。
我的理解是,由于Catmull-Rom样条是三次的,如果不添加任何额外的点,我将无法计算第一个和最后一个片段的插值点。
我读到一个常见的方法来插值点在这两个部分是使用二次插值。
不幸的是,我不知道该怎么做。我已经知道如何做二次贝塞尔近似,但这不是我想做的,因为我不想引入任何额外的支撑点。
我发现这个网站:http://dafeda.wordpress.com/2010/09/01/newtons-divided-difference-polynomial-quadratic-interpolation/它很好地解释了如何做二次插值。但我不知道如何适应我的情况,我想计算一个新的点,而不仅仅是y。
任何帮助都会很感激。谢谢!
通常的方法是添加两个结束点的第二个副本…所以如果你有一条样条经过 a - b - c - d 那么你就要计算样条 a - a - b - c - d - d
通过下面的公式实现了一个不错的解决方案:http://www.doc.ic.ac.uk/~dfg/AndysSplineTutorial/Parametrics.html
他们还提供了一个很好的Java applet来检查不同的参数。
对于我的问题,我将t1值设置为0.5,并检查t是否高于/低于此阈值,因为我只想绘制曲线的一段!很好。
- 我的固定时间步长与增量时间和插值的解决方案是错误的吗?
- 将使用太多的纹理插值器 - 带旋转的着色器
- 升压插值条件变量可以虚假唤醒吗?
- 如何获得插值极坐标?
- 如何线性插值到不恒定的目的地
- 向心Catmull-Rom样条曲线插值alpha参数
- 使用 OpenGL 插值数据缓冲区?
- 缩放和插值数组
- 骨骼动画:变换矩阵(collada)之间的插值
- 从一组点C++平面插值
- 从 C++14 到 C++98 的端口字符串插值
- 将矢量的数据扩展到指定大小(插值)
- 双线性插值实现的错误
- 如何避免线性插值"trap"?
- 使用 DirectX 11 插值背景颜色?
- OpenGL 缺陷 - 不需要的插值
- 如何在三角形曲面细分评估着色器中插值 UV 映射坐标?
- 将 N 个公式替换为一个(字符串插值)
- C++ - 处理几何插值中的浮点误差
- 三次样条:开始/结束段插值