import heapq

def closest_points(points, k):
    if k <= 0:
        return []
    heap = []
    for i, (x, y) in enumerate(points):
        heapq.heappush(heap, (-(x*x + y*y), -i))
        if len(heap) > k:
            heapq.heappop(heap)
    return [tuple(points[-index]) for distance, index in sorted(heap, reverse=True)]
