def points_interp(points1, points2, weight2):
    """Interpolate between two 2D point lists, returning a new point list.
    Specify weighting (0.0 to 1.0) of second list. Lists should have
    same number of points; if not, lesser point count is used and the
    output may be weird."""
    num_points = min(len(points1), len(points2))
    if num_points < 1:
        return None
    weight2 = min(max(0.0, weight2), 1.0)
    weight1 = 1.0 - weight2
    points = []
    for point_num in range(num_points):
        points.append(
            (
                points1[point_num][0] * weight1 + points2[point_num][0] * weight2,
                points1[point_num][1] * weight1 + points2[point_num][1] * weight2,
            )
        )
    return points