|
◆ cubicSplines()
bool mgcurv::cubicSplines |
( |
int |
n, |
|
|
const Point2d * |
knots, |
|
|
Vector2d * |
knotvs, |
|
|
int |
flag = 0 , |
|
|
float |
tension = 1 |
|
) |
| |
|
static |
计算三次参数样条曲线(Hermite)的型值点的切矢量
三次参数样条曲线的分段曲线方程为:
P[i](t) = knots[i] + knotvs[i] * t
+ (3*(knots[i+1] - knots[i]) - 2 * knotvs[i] - knotvs[i+1]) * t^2
+ (2*(knots[i] - knots[i+1]) + knotvs[i] + knotvs[i+1]) * t^3
其中 0 ≤ t ≤ 1
- 参数
-
[in] | n | 型值点的点数 |
[in] | knots | 型值点坐标数组,元素个数为n |
[out] | knotvs | 型值点的切矢量数组,元素个数为n,由外界分配内存 |
[in] | flag | 曲线边界条件,由 MgCubicSplineFlag 各种值组合而成。
指定 cubicTan1 时, knotvs[0]必须指定有效的切矢量;
指定 cubicTan2 时, knotvs[n-1]必须指定有效的切矢量。
指定 cubicLoop 时,knots的首末型值点不必重合,计算中将首末型值点视为任意两点。 |
[in] | tension | 张力系数,0≤coeff≤1, 为1时C2阶连续, 为0时成折线 |
- 返回
- 是否计算成功
- 参见
- MgCubicSplineFlag, fitCubicSpline, cubicSplinesBox
|