def pointOnACurve((x1, y1), (cx1, cy1), (cx2, cy2), (x2, y2), value):
    #, handle = False , order = False):
    dx = x1
    cx = (cx1 - dx) * 3.0
    bx = (cx2 - cx1) * 3.0 - cx
    ax = x2 - dx - cx - bx
    dy = y1
    cy = (cy1 - dy) * 3.0
    by = (cy2 - cy1) * 3.0 - cy
    ay = y2 - dy - cy - by
    mx = ax*(value)**3 + bx*(value)**2 + cx*(value) + dx
    my = ay*(value)**3 + by*(value)**2 + cy*(value) + dy
    return MathPoint(mx, my)
dataset/ETHPy150Open gferreira/hTools2/Lib/hTools2/extras/outline.py/pointOnACurve/original