cubicAt function
DiagramPoint
cubicAt(
- DiagramPoint start,
- DiagramPoint firstControl,
- DiagramPoint secondControl,
- DiagramPoint end,
- double t,
The point at parameter t on a cubic Bézier curve.
Implementation
DiagramPoint cubicAt(
DiagramPoint start,
DiagramPoint firstControl,
DiagramPoint secondControl,
DiagramPoint end,
double t,
) {
final inverse = 1 - t;
final inverseSquared = inverse * inverse;
final tSquared = t * t;
return DiagramPoint(
inverseSquared * inverse * start.x +
3 * inverseSquared * t * firstControl.x +
3 * inverse * tSquared * secondControl.x +
tSquared * t * end.x,
inverseSquared * inverse * start.y +
3 * inverseSquared * t * firstControl.y +
3 * inverse * tSquared * secondControl.y +
tSquared * t * end.y,
);
}