def __init__(self, points): self.output = [] # list of line segment self.arc = None # binary tree for parabola arcs self.points = PriorityQueue() # site events self.event = PriorityQueue() # circle events # bounding box self.x0 = -50.0 self.x1 = -50.0 self.y0 = 550.0 self.y1 = 550.0 # insert points to site event for pts in points: point = Point(pts[0], pts[1]) self.points.push(point) # keep track of bounding box size if point.x < self.x0: self.x0 = point.x if point.y < self.y0: self.y0 = point.y if point.x > self.x1: self.x1 = point.x if point.y > self.y1: self.y1 = point.y # add margins to the bounding box dx = (self.x1 - self.x0 + 1) / 5.0 dy = (self.y1 - self.y0 + 1) / 5.0 self.x0 = self.x0 - dx self.x1 = self.x1 + dx self.y0 = self.y0 - dy self.y1 = self.y1 + dy
def __init__(self, points): self.voronoi = [] self.beach_line = None self.scenes = [] self.points = points self.events = PriorityQueue() # bounding box self.LEFT = -50 self.RIGHT = -50 self.TOP = 500 self.BOTTOM = 500 self.create_bounding_box(points)