diff --git a/axi/drawing.py b/axi/drawing.py index 37ce1ec..da7bad4 100644 --- a/axi/drawing.py +++ b/axi/drawing.py @@ -129,6 +129,22 @@ def rotate_and_scale_to_fit(self, width, height, padding=0, step=5): scale, drawing = max(drawings) return drawing.scale(scale, scale).center(width, height) + def crop(self, width, height): + paths = [] + for path in self.paths: + ok = True + new_path = [] + for x, y in path: + if x < 0 or y < 0 or x > width or y > height: + if new_path: + paths.append(new_path) + new_path = [] + else: + new_path.append((x,y)) + if new_path: + paths.append(new_path) + return Drawing(paths) + def remove_paths_outside(self, width, height): paths = [] for path in self.paths: