A mathematical exploration of
This repository is VERY MUCH a work-in-progress. In the current form it is mainly meant for me to sync relevant files between computers. Do not expect the code to run on your machine as is.
This research and included software is in the public domain for jursidictions in which the public domain exists. Alternatively, it is available under the Zero-Clause BSD license.
Easing functions are ubiquitous in computer graphics and animations. Any time there is a change in a continuous parameter programs need to somehow interpolate between the start and end state. Easing functions only interpret between scalar values 0 and 1 though, so how would we go about interpolating between vectors?
If we have two vectors
An easy and computationally efficent way of
However, cubic Béziers have a linear second derivative, i.e. linear acceleration, thus we will typically start and end with extrme acceleartions and have zero acceleration somewhere in the middle. Note that these extreme accelartions are inherent to all Bézier curves independent of degree (if the degree is at least 3). We could choose e.g. a fifth-order Bézier curve and set start and end accelerations to 0, this however would then yield even stronger accelerations on (0, 1).
In comparison, rocket easing uses constant accelerations which minimizes the maximum acceleration overall.