如何在python中插入加权Hermite样条

时间:2015-01-28 04:08:31

标签: python math interpolation spline hermite

我需要插入加权的Hermite样条曲线,我很难想出一个能够用不同的切线角度正确计算出来的公式。

有没有人有一个公式来理想地计算python中的加权切线而不使用scipy或numpy? 或者也许是一个解释其背后数学的pdf的链接? 提前感谢您给出的任何建议。

数据来自需要在Maya外部使用的Autodesk Maya动画曲线。 是的,我使用过包含的animEngine.c,但它没有正确计算切线设置为'auto'的键

以下是一些示例数据:

point:  0
time(x): 14
value(y): 8.535
inAngle:  -48.7059321223
inX:  0.583333313465
inY:  -15.9391937256
inWeight:  7.07152271271
outAngle:  -48.7059355374
outX:  0.33333337307
outY:  -9.10811233521
outWeight:  4.0408706665
point:  1
time(x): 22
value(y): -12.131
inAngle:  -26.318250542
inX:  0.33333337307
inY:  -3.95701789856
inWeight:  2.97504448891
outAngle:  -26.318250542
outX:  0.416666686535
outY:  -4.94627189636
outWeight:  3.71880531311
point:  2
time(x): 32
value(y): -0.369
inAngle:  -1.40329438149
inX:  0.416666686535
inY:  -0.244970053434
inWeight:  3.3343334198
outAngle:  -2.02149523016
outX:  0.763025164604
outY:  -0.646368861198
outWeight:  6.10800218582

与非加权相同的曲线:

point:  0
time(x): 14
value(y): 8.535
inAngle:  -48.7059321223
inX:  0.583333313465
inY:  -15.9391937256
inWeight:  7.07152271271
outAngle:  -48.7059355374
outX:  0.33333337307
outY:  -9.10811233521
outWeight:  4.0408706665
point:  1
time(x): 22
value(y): -12.131
inAngle:  -26.318250542
inX:  0.33333337307
inY:  -3.95701789856
inWeight:  2.97504448891
outAngle:  -26.318250542
outX:  0.416666686535
outY:  -4.94627189636
outWeight:  3.71880531311
point:  2
time(x): 32
value(y): -0.369
inAngle:  -1.40329438149
inX:  0.416666686535
inY:  -0.244970053434
inWeight:  3.3343334198
outAngle:  -2.02149523016
outX:  0.763025164604
outY:  -0.646368861198
outWeight:  6.10800218582

0 个答案:

没有答案