def cubic_bezier_point(p0, p1, p2, p3, t):
    a = (1.0 - t)**3
    b = 3.0 * t * (1.0 - t)**2
    c = 3.0 * t**2 * (1.0 - t)
    d = t**3
    return {
        "x": a * p0["x"] + b * p1["x"] + c * p2["x"] + d * p3["x"],
        "y": a * p0["y"] + b * p1["y"] + c * p2["y"] + d * p3["y"],
    }
https://en.wikipedia.org/wiki/B%C3%A9zier_curve#Cubic_B.C3.A9zier_curves
dataset/ETHPy150Open Microsoft/ivy/ivy/dot_layout.py/cubic_bezier_point