TouchVG framework

◆ 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

通用矢量图形框架, 版权所有 (C) 张云贵 2004-2017,BSD 开源许可证