Skip to content

hzt/AverageCurve

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AverageCurve

均速曲线路径

由于贝塞尔曲线和基本样条曲线插值形成的曲线路径不是均速的,在某些场景可能会影响效果。比如说鱼游动,一般的曲线插值会忽快忽慢,像下面这样子:

curve

变速的曲线不利于精确控制速度,所以需要做额外的计算,以符合要求。

在插值之前,额外计算到指定长度的t变量,实现均速曲线,处理之后的效果图:

curve

均速缓动曲线

前言:

物体的运动有时候需要由快变慢或者慢慢加快 这就需要叠加一个缓动曲线,游戏引擎预设的一些曲线都是初等函数叠加形成的,不能直观的感受到缓动曲线的变化趋势。 因此需要一个能够直接想象的到,并且方便自定义曲线的方式。

实现:

let rom = new CatmullRom(pts,1)
rom.lerp(t).y

接口 参数 说明
catmullRom=new CatmullRom(pts,usage) pts 曲线经过的点数组
usage 0:均速路径曲线
1:均速缓动曲线
catmullRom.lerp(t) t 插件比例,范围0-1,0:起点, 1:终点

matlab版本可以直观的观察曲线的轨迹,可以用来编辑曲线。

About

均速曲线

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • MATLAB 29.7%
  • Lua 26.9%
  • JavaScript 23.1%
  • C++ 20.3%