CatmullRom插值算法

本文详细介绍了Vector3fDDUtil类中的Catmull-Rom插值算法实现过程,包括关键变量的定义、计算公式及最终曲线点的返回。该算法用于生成平滑的三维曲线,适用于计算机图形学和动画制作。
Vector3f DDUtil::catmullRom(Vector3f P0, Vector3f P1, Vector3f P2, Vector3f P3, float t)
{
      float factor = 0.5;
      Vector3f c0 = P1;
      Vector3f c1 =  (P2 - P0) * factor;
      Vector3f c2 =  (P2 - P1) * 3.f  -   (P3 - P1) * factor -  (P2 - P0)* 2.f * factor ;
      Vector3f c3 =  (P2 - P1) * -2.f  +   (P3 - P1) * factor +  (P2 - P0) * factor;

      Vector3f curvePoint = c3 * t * t * t + c2 * t * t + c1 * t + c0;

    return curvePoint;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值