def locus(func, param, **kwargs):
    """Generate a parameterized sequence of 2D points"""
    t0, t1, steps = param
    for i in range(steps + 1):
        try:
            x = t0 + i * (t1 - t0) / steps
            try:
                y = func(x, **kwargs)
            except:
                y = func(x)
            yield y if type(y) in (list, tuple) else (x, y)
        except:
            pass
